comparison src/luan/modules/ThreadLuan.java @ 1106:151dc95f5e73

make thread scheduler public
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 03 Jul 2017 04:22:46 -0600
parents 772d16c89056
children 50879022f49d
comparison
equal deleted inserted replaced
1105:27bf094f0ae3 1106:151dc95f5e73
3 import java.io.Closeable; 3 import java.io.Closeable;
4 import java.util.Map; 4 import java.util.Map;
5 import java.util.LinkedHashMap; 5 import java.util.LinkedHashMap;
6 import java.util.concurrent.Executor; 6 import java.util.concurrent.Executor;
7 import java.util.concurrent.Executors; 7 import java.util.concurrent.Executors;
8 import java.util.concurrent.ScheduledExecutorService; 8 import java.util.concurrent.ScheduledThreadPoolExecutor;
9 import java.util.concurrent.ScheduledFuture; 9 import java.util.concurrent.ScheduledFuture;
10 import java.util.concurrent.TimeUnit; 10 import java.util.concurrent.TimeUnit;
11 import luan.Luan; 11 import luan.Luan;
12 import luan.LuanState; 12 import luan.LuanState;
13 import luan.LuanFunction; 13 import luan.LuanFunction;
16 import luan.LuanCloner; 16 import luan.LuanCloner;
17 17
18 18
19 public final class ThreadLuan { 19 public final class ThreadLuan {
20 private static final Executor exec = Executors.newCachedThreadPool(); 20 private static final Executor exec = Executors.newCachedThreadPool();
21 private static final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); 21 public static final ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1);
22 22
23 public static void fork(LuanState luan,LuanFunction fn,Object... args) { 23 public static void fork(LuanState luan,LuanFunction fn,Object... args) {
24 LuanCloner cloner = new LuanCloner(LuanCloner.Type.COMPLETE); 24 LuanCloner cloner = new LuanCloner(LuanCloner.Type.COMPLETE);
25 final LuanState newLuan = (LuanState)cloner.clone(luan); 25 final LuanState newLuan = (LuanState)cloner.clone(luan);
26 final LuanFunction newFn = (LuanFunction)cloner.get(fn); 26 final LuanFunction newFn = (LuanFunction)cloner.get(fn);