Mercurial Hosting > luan
comparison src/luan/modules/Thread.luan @ 1372:431d5bec3ca4
add Thread.new_synchronizer
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 01 Jul 2019 15:37:51 -0600 |
parents | ae2321a09723 |
children | 72b699bad1a4 |
comparison
equal
deleted
inserted
replaced
1371:4c5548a61d4f | 1372:431d5bec3ca4 |
---|---|
1 require "java" | 1 require "java" |
2 local ThreadLuan = require "java:luan.modules.ThreadLuan" | 2 local ThreadLuan = require "java:luan.modules.ThreadLuan" |
3 local ReentrantLock = require "java:java.util.concurrent.locks.ReentrantLock" | |
3 local Luan = require "luan:Luan.luan" | 4 local Luan = require "luan:Luan.luan" |
4 local error = Luan.error | 5 local error = Luan.error |
5 local set_metatable = Luan.set_metatable or error() | 6 local set_metatable = Luan.set_metatable or error() |
6 local try = Luan.try or error() | 7 local try = Luan.try or error() |
7 local Time = require "luan:Time.luan" | 8 local Time = require "luan:Time.luan" |
88 function Thread.run_for_backup(fn) | 89 function Thread.run_for_backup(fn) |
89 return run_in_lock(backup_lock,fn) | 90 return run_in_lock(backup_lock,fn) |
90 end | 91 end |
91 | 92 |
92 | 93 |
94 function Thread.new_synchronizer() | |
95 local lock = ReentrantLock.new() | |
96 return function(fn) | |
97 return function(...) | |
98 return run_in_lock(lock,fn,...) | |
99 end | |
100 end | |
101 end | |
102 | |
103 | |
93 return Thread | 104 return Thread |