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