Mercurial Hosting > luan
diff src/luan/modules/Thread.luan @ 1515:78d937870762
Thread.synchronized
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 30 May 2020 17:58:35 -0600 |
parents | 5b8f76e26ab7 |
children | d9a5405a3102 |
line wrap: on
line diff
--- a/src/luan/modules/Thread.luan Tue May 26 22:36:33 2020 -0600 +++ b/src/luan/modules/Thread.luan Sat May 30 17:58:35 2020 -0600 @@ -83,14 +83,25 @@ end +local default_time_out = Time.period{minutes=10} local run_in_lock = ThreadLuan.runInLock -Thread.run_in_lock = run_in_lock +local get_lock = ThreadLuan.getLock +function Thread.synchronized(fn,key,time_out) + time_out = time_out or default_time_out + local lock = get_lock(key) + return function(...) + return run_in_lock(lock,time_out,fn,...) + end +end + + +-- remove function Thread.new_synchronizer() local lock = ReentrantLock.new() return function(fn) return function(...) - return run_in_lock(lock,fn,...) + return run_in_lock(lock,default_time_out,fn,...) end end end