Mercurial Hosting > luan
diff src/luan/modules/ThreadLuan.java @ 782:655280eab1e2
start limited cloning
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 30 Aug 2016 01:29:33 -0600 |
parents | fbbdd369a13a |
children | d69d3c51c44e |
line wrap: on
line diff
--- a/src/luan/modules/ThreadLuan.java Mon Aug 29 22:49:32 2016 -0600 +++ b/src/luan/modules/ThreadLuan.java Tue Aug 30 01:29:33 2016 -0600 @@ -19,10 +19,10 @@ private static final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); public static void fork(LuanState luan,LuanFunction fn,Object... args) { - LuanCloner cloner = new LuanCloner(); - final LuanState newLuan = (LuanState)cloner.deepClone(luan); + LuanCloner cloner = new LuanCloner(true); + final LuanState newLuan = (LuanState)cloner.clone(luan); final LuanFunction newFn = (LuanFunction)cloner.get(fn); - final Object[] newArgs = cloner.deepClone(args); + final Object[] newArgs = cloner.clone(args); exec.execute(new Runnable(){public void run() { try { newFn.call(newLuan,newArgs); @@ -44,10 +44,10 @@ } public static void schedule(LuanState luan,long delay,boolean repeat,LuanFunction fn,Object... args) { - LuanCloner cloner = new LuanCloner(); - final LuanState newLuan = (LuanState)cloner.deepClone(luan); + LuanCloner cloner = new LuanCloner(true); + final LuanState newLuan = (LuanState)cloner.clone(luan); final LuanFunction newFn = (LuanFunction)cloner.get(fn); - final Object[] newArgs = cloner.deepClone(args); + final Object[] newArgs = cloner.clone(args); Runnable r = new Runnable(){public void run() { try { newFn.call(newLuan,newArgs);