summaryrefslogtreecommitdiff
path: root/index.html (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-02-23Fixed documentation regarding "standard modules"gh-pagesBenoit Germain1-22/+73
2024-02-22Detect runtime LuaJIT/PUC-Lua mismatchBenoit Germain1-1/+1
2023-08-17Finalize version 3.16.2Benoit Germain1-1/+1
2023-08-09new .internal_allocator configuration IUNTESTED)Benoit Germain1-9/+25
new configuration option .internal_allocator to help LuaJIT users. THIS IS YET UNTESTED, USE AT YOUR OWN RISKS.
2023-07-28Update comparison.htmlBenoit Germain1-2/+2
2022-02-08__lanesclone is now called only once with 3 parameters dest, source, size -> ↵Benoit Germain1-19/+9
BREAKS CUSTOM DEEP USERDATA API
2022-02-07Version bumpBenoit Germain1-4/+5
2021-07-08fix function transfer with lua_dump for Lua 5.4 failing for functions big ↵Benoit Germain1-1/+1
enough to necessitate a buffer reallocation
2021-06-24correctly transfer the uservalue of a deep userdataBenoit Germain1-1/+1
2021-06-23 __lanesclone now receives the original as light userdata the first time it ↵Benoit Germain1-8/+17
is called
2021-06-16changed lanes.threads() output so that several lanes with the same name ↵Benoit Germain1-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.
2019-04-26Lane cancellation reworkBenoit Germain1-25/+22
opt.cancelstep is gone, hook is installed by lane:cancel() if requested lane:cancel() rework (see doc)
2018-11-28Split a megafunction in smaller partsBenoit Germain1-1/+2
2018-11-25protect_allocator configure option is gone, long live allocator (more ↵Benoit Germain1-0/+25
embedders-friendly)
2018-11-15Deep userdata must embed DeepPrelude to save an allocation (also changes ↵Benoit Germain1-9/+9
Deep protocol)
2018-11-15split linda code in a separate fileBenoit Germain1-1/+1
2018-11-09new API lanes.set_thread_affinity(), and et_debug_threadname implemented ↵Benoit Germain1-0/+16
with win32 pthread
2018-11-08Make sure any linda operation that can raise an error won't ever leave a ↵Benoit Germain1-1/+1
mutex unreleased
2018-11-07__lanesclone mechanism should actually work nowBenoit Germain1-6/+59
2018-11-06Documentation tweakBenoit Germain1-1/+1
2018-11-04Documentation for __lanescloneBenoit Germain1-2/+17
2018-11-02Fix error with LuaJIT when ffi package isn't requiredBenoit Germain1-3/+3
2018-11-02Enum buildfixBenoit Germain1-1/+1
2017-08-01Clarification in limitationsBenoit Germain1-0/+1
2017-08-01Fix for deep-aware modulesBenoit Germain1-3/+3
Don't crash when using a module that creates Lanes-compatible deep userdata. Added a sample deep-aware module.
2017-06-05Table transfer improvementsBenoit Germain1-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
2017-01-11OpenWRT supportfirst-leon1-0/+1
https://github.com/openwrt/packages/tree/master/lang/lualanes
2016-11-21Bump version, update docBenoit Germain1-3/+4
2015-04-27Preparing next releaseBenoit Germain1-3/+3
2014-09-18New API lanes.sleep (bumped version to 3.9.7)Benoit Germain1-1/+9
2014-06-17Deep userdata changesBenoit Germain1-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()
2014-03-20Fixed error handling when handler isn't calledBenoit Germain1-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
2014-02-27linda:send() improvementsBenoit Germain1-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)
2014-02-26Multiverse compatibilityBenoit Germain2-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
2014-02-17lindas can have a group for keeper state assignation controlBenoit Germain1-3/+4
2014-02-17Deep userdata support improvementsBenoit Germain1-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)
2014-02-13more fixes/tweaks about cancelled lindasBenoit Germain1-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
2014-02-10new API linda:cancel("read"|"write"|"both"|"none")Benoit Germain1-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)
2014-01-222 crash fixes and 1 experimentBenoit Germain1-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
2014-01-22new lane launcher option gc_cbBenoit Germain1-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)
2014-01-20Turn potential malicious-crafted code crashes into normal Lua errorsBenoit Germain1-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
2014-01-20get()/set() improvementsBenoit Germain1-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()
2014-01-16Cancellation improvements and some fixesBenoit Germain1-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
2014-01-09Linda fixesBenoit Germain1-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
2014-01-06fix on_state_create circular logic issueBenoit Germain1-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
2013-12-20fixed a shutdown crashBenoit Germain1-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
2013-12-04new API lanes.set_thread_priority()Benoit Germain1-3/+23
2013-12-02pthread thread priority refacto: index.htmlBenoit Germain1-1/+1
2013-11-29supposedly improved pthread supportBenoit Germain1-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)
2013-11-16Update documentationBenoit Germain1-5/+9