aboutsummaryrefslogtreecommitdiff
path: root/src/lanes.lua (follow)
Commit message (Collapse)AuthorAgeFilesLines
* fix possible crash at application shutdown when a race condition causes ↵Benoit Germain2012-08-101-1/+1
| | | | linda objects to be collected after the keeper states are cleaned up.
* one more step toward 5.2 compatibilityv3.1.5Benoit Germain2012-07-101-2/+2
| | | | | | * lua51-lanes renamed lanes.core * keeper state microcode is no longer embedded inside lanes.core, but located and loaded with package.loaders[2] * changed rockspec build type from "make" to "builtin"
* expose lua51-lanes.now_secs() as lanes.now_secs()Benoit Germain2012-07-081-0/+1
| | | | (resolves issue #29)
* * when a transfered function is not found in source, guess its name to help ↵v3.1.4Benoit Germain2012-06-271-0/+1
| | | | | | the user find out what's wrong * new function lanes.nameof()
* fix issue #25Benoit Germain2012-06-241-30/+37
| | | | | | * lanes.timer() accepts a first_secs=nil to stop a timer * timer lane catches errors and prints them * fixed some typos in manual
* fix abusive internal error message displayed when the timer lane decides it ↵benoit-germain2012-06-201-2/+2
| | | | has to wake up in 0ms or when timer lane is cancelled.
* expose error sentinel lanes.cancel_errorbenoit-germain2012-06-191-0/+1
|
* Improve LuaJIT compatibility, part #2: timer lane generator uses "*" library ↵benoit-germain2012-04-261-1/+1
| | | | list
* * changed lanes.configure signature to receive a table instead of individual ↵Benoit Germain2012-02-181-10/+22
| | | | | | parameters * added support for an on_state_create callback called to load custom functions in a state in addition to the base libraries
* bugfix: restore ABOUT info where it belongs, in the lanes module table, ↵benoit-germain2011-11-151-1/+1
| | | | instead of the global scope.
* * removed packagepath and packagecpath options, replaced by a package table, ↵Benoit Germain2011-11-141-8/+5
| | | | | | | whose fields path, cpath, loaders, preload are transfered * code cleanup to facilitate transition between WIN32 and PTHREAD impleentations * tentative fix for desinit crashes when free running lanes are killed at process shutdown
* Cause `lanes.configure()` to return the module table to enable the `require ↵benoit-germain2011-11-071-0/+2
| | | | "lanes".configure()` idiom.
* * process exit change: close everything at GC when main state closes, not ↵Benoit Germain2011-11-051-17/+62
| | | | | | | | | | | | | | | | | | | | 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
* New featuresBenoit Germain2011-03-301-2/+7
| | | | | | * linda honors __tostring and __concat * new accessor linda:keys(), to retrieve the list of keys with pending data inside a linda * new lanes options packagepath and packagecpath, in case one needs to set them differently than the default
* fix typo in timer function codebenoit-germain2011-03-021-1/+1
|
* * fixed potential crash at application shutdown when calling lua_close() on ↵Benoit Germain2011-03-011-2/+2
| | | | | | | a killed thread's VM. * exposed cancel_test() in the lanes to enable manual testing for cancellation requests. * removed kludgy {globals={threadName}} support, replaced with a new function set_debug_threadname().
* Make the number of internal keeper states selectable by an optional ↵Benoit Germain2011-02-211-1/+1
| | | | parameter passed to require.
* Lane userdata implementation refactoring:Benoit Germain2011-02-171-102/+5
| | | | | | | | | | | | | | | - Refactor lane proxy implementation: it is now a full userdata instead of a table, and its methods are implemented in C instead of Lua. * its metatable is no longer accessible. * writing to the proxy raises an error. * it is no longer possible to overwrite its join() and cancel() methods - when a deep userdata idfunc requests a module to be required, manually check that it is not loaded before requiring it instead of relying on the require function's loop detection feature. - when a module must be required, raise an error if the 'require' function is not found in the target state. - we know Lanes is loaded in the master state, so we don't force it to be required in every lane too when a linda deep userdata is copied.
* Changed idfunc signature and contract to clarify that fact it is not ↵Benoit Germain2011-02-121-10/+2
| | | | lua-callable and to be able to require the module it was exported from in the target lanes.
* Changed lanes.c to export functions as a module rather than writing them ↵Peter Dettwiler2011-01-251-3/+2
| | | | directly to the globals table.
* Take all code from Asko Kauppi's SVN server, and push it here so that the ↵Benoit Germain2011-01-041-9/+24
| | | | | | | | | | | | github repository becomes the official Lanes source codebase. Note that Asko's SVN server holds version 2.0.9, whereas this is version 2.0.10, but I don't see any real need to update SVN if it is to become deprecated. Next steps: - upgrade the rockspec to the latest version - make the html help available online somewhere Signed-off-by: Benoit Germain <bnt.germain@gmail.com>
* Import to gitPeter Drahoš2010-10-011-0/+611