| 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.
|
|
|
|
| |
allocator is not
|
|
|
|
| |
Tabs mess up alignment of stack contents comments, so I'm done with them.
|
|
|
|
|
| |
opt.cancelstep is gone, hook is installed by lane:cancel() if requested
lane:cancel() rework (see doc)
|
| |
|
| |
|
| |
|
|
|
|
| |
embedders-friendly)
|
|
|
|
| |
with win32 pthread
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* better LuaJIT-specific headers detection
* add LuaJIT-specific libraries when known
* properly raise an error when attempting to transfer a LUAT_CDATA value
* some compilationg warning fixes
|
|
|
|
| |
not called manually
|
|
|
|
|
| |
Fixes crash on require under Lua 5.3 without LUA_COMPAT_5_2.
Fixes utf8 library not loaded under Lua 5.3.
|
| |
|
|
|
|
|
|
| |
* bumped version to 3.9.5
* lanes.gen() error reporting improvements
* fix linda.__towatch to return non-nil when the linda is empty
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.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)
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
use demote_full_userdata to select between light userdata demotion or
raising an error when attempting to transfer a non-deep full userdata
|
| |
|
| |
|
|
|
|
| |
* Fixed function returned by lanes.genlock() not handling numeric keys properly when release lock
* Enable lanes.genlock() to attempt lock with an optional "try" mode
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
| |
* stricter validation of with_timers config option: validator was accepting any non-boolean value
* new configuration option protect_allocator for VMs with thread unsafe allocators (such as LuaJIT)
* removed some obsolete bits of dead code
|
|
|
| |
fix validation of with_timers config option: validator was accepting any non-boolean value
|
|
|
|
|
|
|
| |
* new lanes.h header and API call luaopen_lanes_embedded() for embedders
* "lanes.core" is an acceptable library in the generator libs argument
* library "*" wildcard also opens lanes.core
* tweaked code for Xbox 360 build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* new: API lanes.require(), use it instead of regular require() for modules that export C functions you need to send over.
* new: lanes no longer require 'lanes.core' by default in every created state. Use {required={"lanes.core"}} if you need to transfer lanes functions.
* internal: because of the above, reworked the timer implementation to remove upvalue-dependency on lanes.core
* new: API lanes.timer_lane, to be able to operate on timer lane if need be
* improved: if a module is a full userdata, scan its metatable for function database population
* improved: on_state_create can be a Lua function
* changed: on_state_create is called after the base libraries are loaded
* package[loaders|searchers] is no longer transfered as function naming depends on slot order
* internal: changed separator from '.' to '/' in lookup databases to be able to distinguish search levels and dot coming from module names
* added some mode debug spew
* updated tests to reflect the above changes
|
|
|
|
| |
* A bit of code cosmetics
|
|
|
|
|
|
|
|
|
|
|
| |
* raise an error if lane generator libs specification contains a lib more than once
* bit32 is a valid lib name in the libs specification (silently ignored by the Lua 5.1 build)
* improved lanes.nameof to search inside table- and userdata- metatables for an object's name
* fixed an unwarranted error when trying to discover a function name upon a failed transfer
* contents of package.[path,cpath,preload,loaders|searchers] are pulled *only once* inside keeper states at initialisation
* Lua function upvalues equal to the global environment aren't copied by value, but bound to the destination's global environment
especially useful for Lua 5.2 _ENV
* fixed loading of base libraries that didn't create the global tables when built for Lua 5.2
|
|
|
| |
Fixes an error when requiring lanes with active timers after having required "luarocks.loader" (issue #42).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
linda objects to be collected after the keeper states are cleaned up.
|
|
|
|
|
|
| |
* lua51-lanes renamed lanes.core
* keeper state microcode is no longer embedded inside lanes.core, but located and loaded with package.loaders[2]
* changed rockspec build type from "make" to "builtin"
|
|
|
|
| |
(resolves issue #29)
|
|
|
|
|
|
| |
the user find out what's wrong
* new function lanes.nameof()
|