summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fixed documentation regarding "standard modules"gh-pagesBenoit Germain2024-02-231-22/+73
|
* Detect runtime LuaJIT/PUC-Lua mismatchBenoit Germain2024-02-221-1/+1
|
* Finalize version 3.16.2Benoit Germain2023-08-171-1/+1
|
* new .internal_allocator configuration IUNTESTED)Benoit Germain2023-08-091-9/+25
| | | | new configuration option .internal_allocator to help LuaJIT users. THIS IS YET UNTESTED, USE AT YOUR OWN RISKS.
* Update comparison.htmlBenoit Germain2023-07-281-2/+2
|
* __lanesclone is now called only once with 3 parameters dest, source, size -> ↵Benoit Germain2022-02-081-19/+9
| | | | BREAKS CUSTOM DEEP USERDATA API
* Version bumpBenoit Germain2022-02-071-4/+5
|
* fix function transfer with lua_dump for Lua 5.4 failing for functions big ↵Benoit Germain2021-07-081-1/+1
| | | | enough to necessitate a buffer reallocation
* correctly transfer the uservalue of a deep userdataBenoit Germain2021-06-241-1/+1
|
* __lanesclone now receives the original as light userdata the first time it ↵Benoit Germain2021-06-231-8/+17
| | | | is called
* changed lanes.threads() output so that several lanes with the same name ↵Benoit Germain2021-06-161-19/+19
| | | | | | don't clobber each other in the result table In the original implementations, the debug name was used as key, which meant that several lanes using the same name would cause only the oldest non-collected one to be listed in the results. Now the result is an array of tuples.
* Lane cancellation reworkBenoit Germain2019-04-261-25/+22
| | | | | opt.cancelstep is gone, hook is installed by lane:cancel() if requested lane:cancel() rework (see doc)
* Split a megafunction in smaller partsBenoit Germain2018-11-281-1/+2
|
* protect_allocator configure option is gone, long live allocator (more ↵Benoit Germain2018-11-251-0/+25
| | | | embedders-friendly)
* Deep userdata must embed DeepPrelude to save an allocation (also changes ↵Benoit Germain2018-11-151-9/+9
| | | | Deep protocol)
* split linda code in a separate fileBenoit Germain2018-11-151-1/+1
|
* new API lanes.set_thread_affinity(), and et_debug_threadname implemented ↵Benoit Germain2018-11-091-0/+16
| | | | with win32 pthread
* Make sure any linda operation that can raise an error won't ever leave a ↵Benoit Germain2018-11-081-1/+1
| | | | mutex unreleased
* __lanesclone mechanism should actually work nowBenoit Germain2018-11-071-6/+59
|
* Documentation tweakBenoit Germain2018-11-061-1/+1
|
* Documentation for __lanescloneBenoit Germain2018-11-041-2/+17
|
* Fix error with LuaJIT when ffi package isn't requiredBenoit Germain2018-11-021-3/+3
|
* Enum buildfixBenoit Germain2018-11-021-1/+1
|
* Clarification in limitationsBenoit Germain2017-08-011-0/+1
|
* Fix for deep-aware modulesBenoit Germain2017-08-011-3/+3
| | | | | | Don't crash when using a module that creates Lanes-compatible deep userdata. Added a sample deep-aware module.
* Merge pull request #127 from first-leon/patch-1Benoit Germain2017-06-051-0/+1
|\ | | | | OpenWRT support
| * OpenWRT supportfirst-leon2017-01-111-0/+1
| | | | | | https://github.com/openwrt/packages/tree/master/lang/lualanes
* | Table transfer improvementsBenoit Germain2017-06-051-2/+5
|/ | | | | | | | * 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 docBenoit Germain2016-11-211-3/+4
|
* Preparing next releaseBenoit Germain2015-04-271-3/+3
|
* New API lanes.sleep (bumped version to 3.9.7)Benoit Germain2014-09-181-1/+9
|
* Deep userdata changesBenoit Germain2014-06-171-3/+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()
* Fixed error handling when handler isn't calledBenoit Germain2014-03-201-1/+5
| | | | | | | | * 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
* linda:send() improvementsBenoit Germain2014-02-271-2/+6
| | | | | | | | | * 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)
* Multiverse compatibilityBenoit Germain2014-02-262-11/+15
| | | | | | | | | | | | | | | * 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
* lindas can have a group for keeper state assignation controlBenoit Germain2014-02-171-3/+4
|
* Deep userdata support improvementsBenoit Germain2014-02-171-10/+22
| | | | | | | | | | | | * 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-7/+7
| | | | | | | | | | * 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-14/+34
| | | | | | | * 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)
* 2 crash fixes and 1 experimentBenoit Germain2014-01-221-3/+7
| | | | | | | | | | * bumped version to 3.8.3 * fixed a possible Lua stack overflow when sending complex function through lindas or as lane body * experimental: lanes.nameof() scans the registry if a regular search didn't yield anything interesting * fixed lanes.nameof() misbehaving when encountering a LUA_TTHREAD object
* new lane launcher option gc_cbBenoit Germain2014-01-221-36/+45
| | | | | | | | * bumped version to 3.8.2 * new lane launcher option gc_cb to set a callback that is invoked when a lane is garbage collected * Fix more invalid memory accesses when fetching the name of a joined lane with lanes:threads() (because its lua_State is closed)
* Turn potential malicious-crafted code crashes into normal Lua errorsBenoit Germain2014-01-201-2/+4
| | | | | | | | | | | | | * bump version to 3.8.1 * new function lane:get_debug_threadname() * Fix invalid memory accesses when fetching the name of a joined lane with lanes:threads() (because its lua_State is closed) * use luaL_newmetatable() to create the metatable for lane objects * prevent malicious code from crashing by calling lane methods without passing the lane as first argument (raise an error instead) * set_debug_threadname() is no longer registered in the function lookup databases because it holds a C pointer as upvalue and it might crash if used maliciously
* get()/set() improvementsBenoit Germain2014-01-201-8/+16
| | | | | | | * bumped version to 3.8.0 * linda:set() accepts multiple values to set in the specified slot * linda:get() accepts an optional count to peek several values at once * nil values are now converted just as in send()/receive()
* Cancellation improvements and some fixesBenoit Germain2014-01-161-8/+17
| | | | | | | | | | | | | | | * bumped version to 3.7.8 * lane:cancel() now accepts a boolean second argument when soft cancelling (negative timeout) to wake the thread if necessary * if a blocked linda send() or receive() call is interrupted by a cancellation request, it returns CANCEL_ERROR so that this case can be differentiated from a simple timeout * fixed WIN32 THREAD_CREATE() wrong _beginthreadex() error detection * fatal WIN32 threading errors retrieve and output the error description string with FormatMessage() * fixed missing lanes.set_singlethreaded * fixed perftest.lua * added test/cancel.lua
* Linda fixesBenoit Germain2014-01-091-10/+20
| | | | | | | | | | | * bumped version to 3.7.7 * fix crash when calling linda:count() on unknown keys * purge key storage with linda:set( key, nil) on an unlimited key to reduce memory usage with lots of keys * linda:limit() wakes write-blocked threads if necessary when the new limit enables writes to occur again * linda:set() wakes write-blocked threads if necessary if the operation created some room to write into
* fix on_state_create circular logic issueBenoit Germain2014-01-061-3/+7
| | | | | | * if config.on_state_create() is a C function, call it by direct C closure reconstruction in newly created states * bumped version to 3.7.6
* fixed a shutdown crashBenoit Germain2013-12-201-9/+23
| | | | | | | * fixed a crash that can occur at shutdown when an object stored inside a keeper state performs a linda operation on a linda making use of another keeper * bumped version to 3.7.5
* new API lanes.set_thread_priority()Benoit Germain2013-12-041-3/+23
|
* pthread thread priority refacto: index.htmlBenoit Germain2013-12-021-1/+1
|
* supposedly improved pthread supportBenoit Germain2013-11-291-8/+10
| | | | | | | | | * bumped version to 3.7.3 * set pthread thread cancel type to PTHREAD_CANCEL_ASYNCHRONOUS * lane_h:cancel() accepts a 3rd timeout argument used when waiting for actual thread termination (hitting the timeout raises an error) * added PROPAGATE_ALLOCF macro to select state creation mode (lua_newstate or luaL_newstate)