comparison src/luan/modules/Thread.luan @ 1366:ae2321a09723

improve Thread.schedule
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 17 Jun 2019 21:50:40 -0600
parents 8d95711f6615
children 431d5bec3ca4
comparison
equal deleted inserted replaced
1365:6617763dfd76 1366:ae2321a09723
27 function Thread.fork(fn) 27 function Thread.fork(fn)
28 fn = safe(fn) 28 fn = safe(fn)
29 ThreadLuan.fork(fn) 29 ThreadLuan.fork(fn)
30 end 30 end
31 31
32 function Thread.schedule(delay,fn,repeating) 32 function Thread.schedule(fn,options)
33 fn = safe(fn) 33 fn = safe(fn)
34 ThreadLuan.schedule(delay,fn,repeating) 34 options = options or {}
35 ThreadLuan.schedule(fn,options)
35 end 36 end
36 37
37 38
38 local forever = Time.period{years=100} 39 local forever = Time.period{years=100}
39 40
78 local tbl = {} 79 local tbl = {}
79 set_metatable(tbl,mt) 80 set_metatable(tbl,mt)
80 return tbl 81 return tbl
81 end 82 end
82 83
84
85 local backup_lock = ThreadLuan.backupLock.readLock()
86 local run_in_lock = ThreadLuan.runInLock
87
88 function Thread.run_for_backup(fn)
89 return run_in_lock(backup_lock,fn)
90 end
91
92
83 return Thread 93 return Thread