| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
linda:send() and linda:receive() no longer trigger string->number autocoercion when checking for the optional timeout argument: a string is always a linda slot, even if coercible.
|
|
|
|
|
|
|
|
|
|
linda:set() no longer clears the storage limit.
|
|
|
|
|
|
|
|
Lua 5.2 introduced a hash randomizer seed which causes table iteration to yield a different key order
on different VMs even when the tables are populated the exact same way.
When Lua is built with compatibility options (such as LUA_COMPAT_ALL),
this causes several base libraries to register functions under multiple names.
This, with the randomizer, can cause the first name of a function to be different on different VMs,
which breaks function transfer.
This means that Lua 5.2 must be built with compatibility off to be able to use Lanes.
Even under Lua 5.1, this may cause trouble (even if this would be much less frequent)
Unfortunately, this fails with string.gfind/string.gmatch when Lua 5.1 is built with LUA_COMPAT_GFIND (which is the case of LuaBinaries),
so for the time being, fail only for Lua 5.2 as the randomizer is the real show breaker here.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* new method linda:dump() that outputs the full contents of a linda as a table, also linked to __towatch for Decoda support
* linda:receive() API change!
* instead of [val, key], linda:receive( timeout, key) returns [key, val]
* instead of [val, [...]], linda:receive( timeout, linda.batched key) returns [key, val[, ...]]
this is to unify the return values of regular and batched mode, and to be able to tell when batched mode is interrupted by a lane cancellation
* fixed Lua 5.2 build to take into account the "loaders"->"searchers" name change in 'package' module.
* a bit of html cleanup and added some infos in the documentation regarding the Lanes internals
|
|
|
|
* implemented set_debug_threadname() for pthread builds where possible
* refactored linda __tostring and __concat
* linda metatable's __metatable is a string instead of a boolean
|
|
not active by default, see threading.h.
|
|
|
|
* lane.status can return "killed" if lane was forcefully killed with lanes:cancel()
* lane:join(): return nil, "killed" if called on a killed lane.
* lane[<n>]: produces [1] = nil, [2] = "killed" if the lane was killed
* lane:join(): fixed an assertion in debug builds when joining a lane forcefully cancelled with lane:cancel( <x>, true).
* indexing a lane with a string other than "join", "cancel" or "status" raises an error.
* fixed configure() to correctly apply defaults when they are missing from the provided settings
* added a shutdown_timeout to control the duration Lanes will wait for graceful termination of running lanes at application shutdown. Default is 0.25.
Among other things, fixes issue #31.
|