Mercurial Hosting > luan
diff src/luan/modules/Thread.luan @ 1233:3fad7091b419
make Thread.safe implicit
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 08 Apr 2018 01:01:48 -0600 |
parents | 9f5edbef3f55 |
children | 2b5046cd7963 |
line wrap: on
line diff
--- a/src/luan/modules/Thread.luan Sun Apr 08 00:41:44 2018 -0600 +++ b/src/luan/modules/Thread.luan Sun Apr 08 01:01:48 2018 -0600 @@ -4,15 +4,15 @@ local error = Luan.error local set_metatable = Luan.set_metatable or error() local try = Luan.try or error() +local Logging = require "luan:logging/Logging.luan" +local logger = Logging.logger "Thread" local Thread = {} -Thread.fork = ThreadLuan.fork -Thread.schedule = ThreadLuan.schedule Thread.sleep = ThreadLuan.sleep -function Thread.safe(fn,logger) +local function safe(fn) return function() try { function() @@ -25,6 +25,17 @@ end end +function Thread.fork(fn,...) + fn = safe(fn) + ThreadLuan.fork(fn,...) +end + +function Thread.schedule(delay,repeated,fn,...) + fn = safe(fn) + ThreadLuan.schedule(delay,repeated,fn,...) +end + + --[[ Thread.global = {} -- shared across threads local map = ThreadLuan.GlobalMap.new()