aboutsummaryrefslogtreecommitdiff
path: root/docs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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 docv3.10.1Benoit Germain2016-11-211-3/+4
|
* Preparing next releasev3.10.0Benoit 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)
* Update documentationBenoit Germain2013-11-161-5/+9
|
* errors inside finalizers generate a full stack just like any other errorBenoit Germain2013-10-221-1/+2
|
* version 3.7.0Benoit Germain2013-10-111-6/+8
| | | | | | | | | | | | * fix lanes.threads() not being available in a lane where lanes.configure() settings didn't contain track_lanes although the initial configure() call did. * require "lanes".configure() sequence is only necessary at the first require "lanes". * fix a crash at application shutdown where in some situations we could deinitialize the protected allocator mutex while a lane was still using it. * fix timers broken by change 69
* Update index.htmlBenoit Germain2013-10-011-1/+1
|
* version 3.6.6Benoit Germain2013-09-271-1/+1
| | | | | | | | no longer call core.configure with dummy params when requiring lanes more than once (fixes potential multithreading issues with LuaJIT allocator) activated EnableCrashingOnCrashes() Win32 debug builds fixed some comments in code
* Reduce memory footprint, simplify module order setup in conjuction with ↵Benoit Germain2013-09-261-11/+6
| | | | | | | | | | | | Lanes, and send over native functions a bit faster as well * Lanes no longer has to internally require modules inside the keeper states because they no longer need a lookup database. the lookup name is stored as-is and actually converted in the destination state * optimisation: bypass cache when sending native functions over * removed all the KEEPER_MODEL_LUA code, as it can no longer work anyway
* Update index.htmlBenoit Germain2013-09-241-1/+1
|
* version 3.6.3v3.6.3Benoit Germain2013-08-131-8/+27
| | | | | | | | * lane:cancel(<negative-timeout>) only causes cancel_test() to return true but won't interrupt execution of the lane during linda operations * more explicit errors when trying to transfer unknown source functions (with new configure option verbose_errors) * default options wrap allocator around a mutex when run by LuaJIT
* version 3.6.2Benoit Germain2013-05-201-1/+1
| | | | | * WIN32 builds use condition variables instead of PulseEvent() when available. * first steps toward fixing make-vc.cmd
* Added a sample snippet for set_finalizer()Benoit Germain2013-05-201-0/+17
|
* Update index.htmlBenoit Germain2013-04-051-5/+3
|
* version 3.6.0Benoit Germain2013-03-141-1/+1
| | | | | * protect_allocator is an API change -> version bump * bugfix: allocator protection should be done once per primary Lua state, not once only the first time ever Lanes is required