Mercurial Hosting > luan
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); |