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