aboutsummaryrefslogtreecommitdiff
path: root/src/lanes.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Lua 5.4 supportBenoit Germain2018-11-271-5/+6
|
* Lanes version available in public headerBenoit Germain2018-11-261-3/+4
|
* protect_allocator configure option is gone, long live allocator (more ↵Benoit Germain2018-11-251-57/+11
| | | | embedders-friendly)
* finish registry access revampBenoit Germain2018-11-231-29/+23
|
* More DEBUGSPEW loggingBenoit Germain2018-11-211-2/+3
|
* Internal code tweaksBenoit Germain2018-11-191-32/+30
| | | | | | * Registry access code utility macros * CONFIG_REGKEY and LOOKUP_REGKEY are now lightuserdata instead of strings * Stack checking debug macros improvements
* Deep userdata must embed DeepPrelude to save an allocation (also changes ↵Benoit Germain2018-11-151-2/+4
| | | | Deep protocol)
* split linda code in a separate fileBenoit Germain2018-11-151-1011/+3
|
* fix a bunch of compilation warnings (issue #157)Benoit Germain2018-11-111-6/+5
|
* new API lanes.set_thread_affinity(), and et_debug_threadname implemented ↵Benoit Germain2018-11-091-0/+12
| | | | with win32 pthread
* Make sure any linda operation that can raise an error won't ever leave a ↵Benoit Germain2018-11-081-41/+58
| | | | mutex unreleased
* __lanesclone mechanism should actually work nowBenoit Germain2018-11-071-0/+1
|
* Fix potential crash at application shutdown when deep userdata were created ↵Benoit Germain2018-11-071-1/+4
| | | | before Lanes is required
* fix an internal error trying to call on_state_create in a lane without any ↵Benoit Germain2018-11-031-6/+3
| | | | | | | libs loaded always duplicate the config structure in new lanes even when no libraries are initialized by the generator
* Fix error with LuaJIT when ffi package isn't requiredBenoit Germain2018-11-021-1/+1
|
* Enum buildfixBenoit Germain2018-11-021-2/+2
|
* Another lua_pushlightuserdata->push_unique_key internal replacementBenoit Germain2018-10-311-4/+5
|
* Improve LuaJIT-x64 compatibilityBenoit Germain2018-10-301-33/+41
| | | | | Restrict internal "light userdata constants" to 47 significant bits when compiling against LuaJIT-x64
* Fix Lanes build by reorganizing types around a bitBenoit Germain2018-10-251-66/+68
|
* Fix for deep-aware modulesBenoit Germain2017-08-011-23/+22
| | | | | | Don't crash when using a module that creates Lanes-compatible deep userdata. Added a sample deep-aware module.
* Accept non-string error messagesBenoit Germain2017-06-131-37/+36
|
* Table transfer improvementsBenoit Germain2017-06-051-8/+34
| | | | | | | | * new API function lanes.register( "name", module) to manually register a module table after it was required * Transfering registered module tables will link the equivalent in the destination state instead of cloning it * bumped version to 3.11
* Bump version, update docv3.10.1Benoit Germain2016-11-211-1/+1
|
* Fix 64 bits compilation warningsBenoit Germain2016-11-211-2/+2
|
* Preparing next releasev3.10.0Benoit Germain2015-04-271-1/+1
|
* Fix segfault in LG_lane_newmpeterv2015-02-241-3/+3
| | | | | | | | | | STACK_END macro was used to check stack size of child Lua state _after_ its thread was launched. That could lead to the check failing as the child thread started manipulating the stack. The macro then called lua_error on the child state from the parent thread, causing a segfault as Lua C API is not thread-safe. The fix is to place STACK_END statements before THREAD_CREATE statement.
* preliminary Lua 5.3 supportBenoit Germain2014-12-161-4/+4
| | | | Untested, but it might just work :).
* New API lanes.sleep (bumped version to 3.9.7)Benoit Germain2014-09-181-1/+1
|
* fix lookup of globals created by on_state_createBenoit Germain2014-07-081-4/+12
| | | | | | * Postponed _G scan for function lookup database to after on_state_create invocation * Fixed a crash when USE_DEBUG_SPEW == 1
* Deep userdata changesBenoit Germain2014-06-171-2/+3
| | | | | | | | | * bumped version to 3.9.6 * separate deep userdata code in a dedicated file to allow external modules to implement Lanes-compatible deep userdata without requiring a binary dependency against the Lanes module. because of this linda_id function(eDO_metatable) must push 2 values on the stack: a metatable and a deep version string obtained from luaG_pushdeepversion()
* Minor fixes and tweaksBenoit Germain2014-05-161-118/+123
| | | | | | * bumped version to 3.9.5 * lanes.gen() error reporting improvements * fix linda.__towatch to return non-nil when the linda is empty
* Fix undefined returned value by linda:send()Benoit Germain2014-04-241-2/+1
|
* Fix build issues with compat.c/hBenoit Germain2014-04-231-3/+0
|
* moved compatibility code in a separate fileBenoit Germain2014-04-031-0/+1
|
* Fixed error handling when handler isn't calledBenoit Germain2014-03-201-206/+207
| | | | | | | | * bumped version to 3.9.4 * set_finalizer throws an error if provided finalizer isn't a function * fix error handling when the error doesn't generate an error handler call (IOW, all errors but LUA_ERRRUN) * provide callstack if LUA_ERRRUN occurs inside a finalizer
* Don't mutex-wrap require() more than onceBenoit Germain2014-03-191-1/+1
|
* Fixed crash when using protect_allocator optionBenoit Germain2014-03-171-14/+14
|
* Fix a lane close crashBenoit Germain2014-02-281-4/+2
|
* linda:send() improvementsBenoit Germain2014-02-271-6/+26
| | | | | | | | | * Bumped version to 3.9.3 * new exposed variable linda.null that exposes the internal NIL_SENTINEL marker * linda:send() interprets send key linda.null as authorization to silently send a single nil when not provided with anything to send (useful when sending results of a function that can return nothing)
* Fixed a pure C compilation errorBenoit Germain2014-02-271-2/+2
|
* Fixed some compilation warningsBenoit Germain2014-02-261-3/+2
|
* Multiverse compatibilityBenoit Germain2014-02-261-287/+260
| | | | | | | | | | | | | | | * bumped version to 3.9.2 * Internal rework: the whole Lanes engine now works "per universe" to allow concurrent Lanes execution in more than one embedded master state * this universe is a full userdata created in the master state, selfdestruct_gc is the __gc for this userdata * most of what was initialized only once is now per-universe * Fixed potential crashes at desinit if problems occur during keeper states initialisation * Fixed require() not always serialized properly * Raise an error instead of crashing on deep userdata prelude memory allocation failure * Added forgotten mutex desinitialisation at universe shutdown
* Multi-state initialisation issueBenoit Germain2014-02-241-7/+7
| | | | | Fix lookup database table not being created when it should if Lanes is required in more than one Lua master state
* more graceful handling of out-of-memory errorsBenoit Germain2014-02-181-13/+16
| | | | | * raise an error instead of dereferencing a NULL pointer on deep userdata creation and lane struct creation
* Lanes init crash fixBenoit Germain2014-02-181-14/+27
| | | | | | | | | | | * bumped version to 3.9.1 * keeper array is allocated with master state's alloc function instead of malloc()/free() * prevent application crash when specifying a very large number of keepers in the configuration options * removed some keeper desinit legacy dead code * any error occuring during one-time inits is raised outside the one-time mutex protected code region
* lindas can have a group for keeper state assignation controlBenoit Germain2014-02-171-21/+49
|
* Deep userdata support improvementsBenoit Germain2014-02-171-137/+149
| | | | | | | | | | | | * bumped version to 3.9.0 * keepers now require "package", receive package.path & package.cpath, and call on_state_create() if it is a C function * changed the deep public API (improved deep idfunc signature, renamed luaG_deep_userdata to luaG_newdeepuserdata) * if an error occurs while copying a deep userdata, don't raise inside the keeper state * fixed situations where raised errors could lead to memory leaks (deep gc)
* more fixes/tweaks about cancelled lindasBenoit Germain2014-02-131-83/+77
| | | | | | | | | | * bumped version to 3.8.5 * linda:limit() returns lanes.cancel_error on a limited linda * lanes.genlock() and lanes.genatomic() support cancelled lindas by returning lanes.cancel_error whenever appropriate * fixed a possible Lua stack overflow when calling linda:dump() * fixed cases where linda:send() and linda:receive() would not return lanes.cancel_error when they should
* new API linda:cancel("read"|"write"|"both"|"none")Benoit Germain2014-02-101-160/+245
| | | | | | | * bumped version to 3.8.4 * all linda operations return lanes.cancel_error on a cancelled linda * raised an internal string length so that longer linda names are fully output before truncation applies when doing tostring( linda)
* Fix compilation error against Lua 5.1Benoit Germain2014-02-041-1/+3
|