comparison src/luan/modules/ThreadLuan.java @ 1420:225808b90cee

options handling
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 26 Oct 2019 22:21:09 -0600
parents 5b8f76e26ab7
children 67bed466460e
comparison
equal deleted inserted replaced
1419:59fd2e8b1b9d 1420:225808b90cee
55 private static Map<String,Reference<ScheduledFuture>> scheduleds = new ConcurrentHashMap<String,Reference<ScheduledFuture>>(); 55 private static Map<String,Reference<ScheduledFuture>> scheduleds = new ConcurrentHashMap<String,Reference<ScheduledFuture>>();
56 56
57 public static void schedule(LuanFunction fn,LuanTable options) 57 public static void schedule(LuanFunction fn,LuanTable options)
58 throws LuanException 58 throws LuanException
59 { 59 {
60 Map map = options.asMap(); 60 options = new LuanTable(options);
61 Number delay = Utils.removeNumber(map,"delay"); 61 Number delay = Utils.removeNumber(options,"delay");
62 Number repeatingDelay = Utils.removeNumber(map,"repeating_delay"); 62 Number repeatingDelay = Utils.removeNumber(options,"repeating_delay");
63 Number repeatingRate = Utils.removeNumber(map,"repeating_rate"); 63 Number repeatingRate = Utils.removeNumber(options,"repeating_rate");
64 String id = Utils.removeString(map,"id"); 64 String id = Utils.removeString(options,"id");
65 if( repeatingDelay!=null && repeatingRate!=null ) 65 if( repeatingDelay!=null && repeatingRate!=null )
66 throw new LuanException("can't define both repeating_delay and repeating_rate"); 66 throw new LuanException("can't define both repeating_delay and repeating_rate");
67 boolean repeating = repeatingDelay!=null || repeatingRate!=null; 67 boolean repeating = repeatingDelay!=null || repeatingRate!=null;
68 Utils.checkEmpty(map); 68 Utils.checkEmpty(options);
69 if( id != null ) { 69 if( id != null ) {
70 Reference<ScheduledFuture> ref = scheduleds.remove(id); 70 Reference<ScheduledFuture> ref = scheduleds.remove(id);
71 if( ref != null ) { 71 if( ref != null ) {
72 ScheduledFuture sf = ref.get(); 72 ScheduledFuture sf = ref.get();
73 if( sf != null ) 73 if( sf != null )