Mercurial Hosting > luan
view core/src/luan/modules/ThreadLuan.java @ 433:c6bcb8859b93
make LuanState.registry a Map;
remove generics from DeepCloneable;
add Map support to DeepCloner;
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 03 May 2015 15:45:39 -0600 |
parents | a6bf8ff720f8 |
children | 6cc2f047019b |
line wrap: on
line source
package luan.modules; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import luan.Luan; import luan.LuanState; import luan.LuanFunction; import luan.LuanTable; import luan.LuanException; import luan.DeepCloner; public final class ThreadLuan { private static final Executor exec = Executors.newCachedThreadPool(); public static void fork(LuanState luan,LuanFunction fn,Object... args) { DeepCloner cloner = new DeepCloner(); final LuanState newLuan = (LuanState)cloner.deepClone(luan); final LuanFunction newFn = (LuanFunction)cloner.get(fn); final Object[] newArgs = cloner.deepClone(args); exec.execute(new Runnable(){public void run() { try { newLuan.call(newFn,"<forked>",newArgs); } catch(LuanException e) { e.printStackTrace(); } }}); } }