diff options
author | Benoit Germain <bnt.germain@gmail.com> | 2011-11-05 17:31:02 +0100 |
---|---|---|
committer | Benoit Germain <bnt.germain@gmail.com> | 2011-11-05 17:31:02 +0100 |
commit | 053f7cff3c95acb915e6babfd306971f11bb7986 (patch) | |
tree | ee38c60b1119d34eb96aea1105ef033e851d266e /tests/irayo_closure.lua | |
parent | 717eadee9c3644fabb32c7ee59949f2846143690 (diff) | |
download | lanes-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.lua | 5 |
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. | |||
10 | e.g. { globals = { data = 1, func = function() useclosurehere() end } }" | 10 | e.g. { globals = { data = 1, func = function() useclosurehere() end } }" |
11 | ]] | 11 | ]] |
12 | 12 | ||
13 | require "lanes" | 13 | local lanes = require "lanes" |
14 | lanes.configure( 1) | ||
14 | 15 | ||
15 | local function testrun() | 16 | local function testrun() |
16 | assert( print ) | 17 | assert( print ) |
@@ -20,7 +21,7 @@ local function testrun() | |||
20 | return true | 21 | return true |
21 | end | 22 | end |
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 |