comparison src/luan/modules/ThreadLuan.java @ 1389:eb8b35dccd99

cleanup and stringify change
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 03 Sep 2019 22:54:31 -0600
parents 8d7a39ca2c0c
children ef1620aa99cb
comparison
equal deleted inserted replaced
1388:2024d23ddd64 1389:eb8b35dccd99
47 47
48 public static void schedule(LuanFunction fn,LuanTable options) 48 public static void schedule(LuanFunction fn,LuanTable options)
49 throws LuanException 49 throws LuanException
50 { 50 {
51 Map map = options.asMap(); 51 Map map = options.asMap();
52 Number delay = (Number)map.remove("delay"); 52 Number delay = Utils.removeNumber(map,"delay");
53 Number repeatingDelay = (Number)map.remove("repeating_delay"); 53 Number repeatingDelay = Utils.removeNumber(map,"repeating_delay");
54 Number repeatingRate = (Number)map.remove("repeating_rate"); 54 Number repeatingRate = Utils.removeNumber(map,"repeating_rate");
55 boolean daemon = Boolean.TRUE.equals(map.remove("daemon")); 55 boolean daemon = Boolean.TRUE.equals(Utils.removeBoolean(map,"daemon"));
56 final boolean runOnClose = Boolean.TRUE.equals(map.remove("run_on_close")); 56 final boolean runOnClose = Boolean.TRUE.equals(Utils.removeBoolean(map,"run_on_close"));
57 if( repeatingDelay!=null && repeatingRate!=null ) 57 if( repeatingDelay!=null && repeatingRate!=null )
58 throw new LuanException("can't define both repeating_delay and repeating_rate"); 58 throw new LuanException("can't define both repeating_delay and repeating_rate");
59 boolean repeating = repeatingDelay!=null || repeatingRate!=null; 59 boolean repeating = repeatingDelay!=null || repeatingRate!=null;
60 if( !map.isEmpty() ) 60 Utils.checkEmpty(map);
61 throw new LuanException( "unrecognized options: "+map );
62 Luan luan = fn.luan(); 61 Luan luan = fn.luan();
63 LuanCloner cloner = new LuanCloner(LuanCloner.Type.COMPLETE); 62 LuanCloner cloner = new LuanCloner(LuanCloner.Type.COMPLETE);
64 final Luan newLuan = (Luan)cloner.clone(luan); 63 final Luan newLuan = (Luan)cloner.clone(luan);
65 final LuanFunction newFn = (LuanFunction)cloner.get(fn); 64 final LuanFunction newFn = (LuanFunction)cloner.get(fn);
66 final Runnable r = runnable(newFn); 65 final Runnable r = runnable(newFn);