Mercurial Hosting > luan
diff src/luan/modules/Thread.luan @ 794:f16c77ef0f4f
add Parsers.json_string and Thread.global
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 05 Sep 2016 16:08:00 -0600 |
parents | c9409e28daa2 |
children | bae2d0c2576c |
line wrap: on
line diff
--- a/src/luan/modules/Thread.luan Mon Sep 05 15:19:44 2016 -0600 +++ b/src/luan/modules/Thread.luan Mon Sep 05 16:08:00 2016 -0600 @@ -1,9 +1,36 @@ java() local ThreadLuan = require "java:luan.modules.ThreadLuan" +local Luan = require "luan:Luan.luan" +local error = Luan.error +local set_metatable = Luan.set_metatable or error() + local M = {} M.fork = ThreadLuan.fork M.schedule = ThreadLuan.schedule + +M.global = {} -- shared across threads +local map = ThreadLuan.StringMap.new() +local global_mt = {} +set_metatable(M.global,global_mt) + +function global_mt.__index(_,key) + return map.get(key) +end + +function global_mt.__new_index(_,key,value) + map.set(key,value) +end + +function global_mt.get_timeout() + return map.timeout +end + +function global_mt.set_timeout(timeout) + map.timeout = timeout +end + + return M