aboutsummaryrefslogtreecommitdiff
path: root/tests/irayo_closure.lua
diff options
context:
space:
mode:
authorBenoit Germain <bnt.germain@gmail.com>2011-11-05 17:31:02 +0100
committerBenoit Germain <bnt.germain@gmail.com>2011-11-05 17:31:02 +0100
commit053f7cff3c95acb915e6babfd306971f11bb7986 (patch)
treeee38c60b1119d34eb96aea1105ef033e851d266e /tests/irayo_closure.lua
parent717eadee9c3644fabb32c7ee59949f2846143690 (diff)
downloadlanes-053f7cff3c95acb915e6babfd306971f11bb7986.tar.gz
lanes-053f7cff3c95acb915e6babfd306971f11bb7986.tar.bz2
lanes-053f7cff3c95acb915e6babfd306971f11bb7986.zip
* process exit change: close everything at GC when main state closes, not when atexit() handlers are processed
* Lua 5.2-style module: * module() is no longer used to implement lanes.lua * a global "lanes" variable is no longer created when the module is required * the Lanes module table is returned instead * Lanes must be initialized before used: * the first occurence of 'require "lanes"' produces a minimal interface that only contains a configure() function * the remainder of the interface is made available once this function is called * subsequent calls to configure() do nothing * configure() controls the number of keeper states and the startup of timers * LuaJIT 2 compatibility * non-Lua functions are no longer copied by creating a C closure from a C pointer, but through 2-way lookup tables * this means that if a lane function body pulls non-Lua functions, the lane generator description must contain the list of libraries and modules that exports them * introduces a change in configuration .globals management: contents are copied *after* std libs are loaded * new .required configuration entry to list modules that must be require()'ed before lane body is transferred * lane:cancel() wakes up waiting lindas like what is done at lane shutdown
Diffstat (limited to 'tests/irayo_closure.lua')
-rw-r--r--tests/irayo_closure.lua5
1 files changed, 3 insertions, 2 deletions
diff --git a/tests/irayo_closure.lua b/tests/irayo_closure.lua
index 3a82302..77ddbde 100644
--- a/tests/irayo_closure.lua
+++ b/tests/irayo_closure.lua
@@ -10,7 +10,8 @@ haven't investigated further.
10e.g. { globals = { data = 1, func = function() useclosurehere() end } }" 10e.g. { globals = { data = 1, func = function() useclosurehere() end } }"
11]] 11]]
12 12
13require "lanes" 13local lanes = require "lanes"
14lanes.configure( 1)
14 15
15local function testrun() 16local function testrun()
16 assert( print ) 17 assert( print )
@@ -20,7 +21,7 @@ local function testrun()
20 return true 21 return true
21end 22end
22 23
23-- When some function dereferences a global key, the asssociated global in the source state 24-- When some function dereferences a global key, the associated global in the source state
24-- isn't sent over the target lane 25-- isn't sent over the target lane
25-- therefore, the necessary functions must either be pulled as upvalues (hence locals) 26-- therefore, the necessary functions must either be pulled as upvalues (hence locals)
26-- or the globals must exist in the target lanes because the modules have been required there 27-- or the globals must exist in the target lanes because the modules have been required there