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