Mercurial Hosting > luan
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) |