| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
new configuration option .internal_allocator to help LuaJIT users. THIS IS YET UNTESTED, USE AT YOUR OWN RISKS.
|
| |
|
|
|
|
| |
BREAKS CUSTOM DEEP USERDATA API
|
| |
|
|
|
|
| |
enough to necessitate a buffer reallocation
|
| |
|
|
|
|
| |
is called
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
opt.cancelstep is gone, hook is installed by lane:cancel() if requested
lane:cancel() rework (see doc)
|
| |
|
|
|
|
| |
embedders-friendly)
|
|
|
|
| |
Deep protocol)
|
| |
|
|
|
|
| |
with win32 pthread
|
|
|
|
| |
mutex unreleased
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Don't crash when using a module that creates Lanes-compatible deep
userdata.
Added a sample deep-aware module.
|
|\
| |
| | |
OpenWRT support
|
| |
| |
| | |
https://github.com/openwrt/packages/tree/master/lang/lualanes
|
|/
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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()
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* 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()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
* 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 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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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)
|