comparison src/luan/modules/Thread.luan @ 1520:d9a5405a3102

try statement
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 21 Jun 2020 18:14:13 -0600
parents 78d937870762
children c922446f53aa
comparison
equal deleted inserted replaced
1519:3ebf9781707c 1520:d9a5405a3102
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 ReentrantLock = require "java:java.util.concurrent.locks.ReentrantLock"
4 local Luan = require "luan:Luan.luan" 4 local Luan = require "luan:Luan.luan"
5 local error = Luan.error 5 local error = Luan.error
6 local set_metatable = Luan.set_metatable or error() 6 local set_metatable = Luan.set_metatable or error()
7 local try = Luan.try or error()
8 local Time = require "luan:Time.luan" 7 local Time = require "luan:Time.luan"
9 local Logging = require "luan:logging/Logging.luan" 8 local Logging = require "luan:logging/Logging.luan"
10 local logger = Logging.logger "Thread" 9 local logger = Logging.logger "Thread"
11 10
12 11
14 13
15 Thread.sleep = ThreadLuan.sleep 14 Thread.sleep = ThreadLuan.sleep
16 15
17 local function safe(fn) 16 local function safe(fn)
18 return function() 17 return function()
19 try { 18 try
20 fn 19 fn()
21 catch = function(e) 20 catch e
22 logger.error(e) 21 logger.error(e)
23 end 22 end
24 }
25 end 23 end
26 end 24 end
27 25
28 function Thread.fork(fn) 26 function Thread.fork(fn)
29 fn = safe(fn) 27 fn = safe(fn)