aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Preparing next releasev3.10.0Benoit Germain2015-04-271-1/+1
|
* Fix standard library lists for Lua 5.3mpeterv2015-04-122-0/+6
| | | | | Fixes crash on require under Lua 5.3 without LUA_COMPAT_5_2. Fixes utf8 library not loaded under Lua 5.3.
* Merge pull request #115 from mpeterv/fix-lua-dumpBenoit Germain2015-04-121-2/+2
|\ | | | | Do not strip debug info of dumped functions on Lua 5.3
| * Do not strip debug info of dumped functions on Lua 5.3mpeterv2015-02-251-2/+2
| |
* | Merge pull request #113 from mpeterv/fix-lua53-configure-crashBenoit Germain2015-04-121-5/+5
|\ \ | | | | | | Fix crash on lanes.configure() on Lua 5.3
| * | Apply _ENV-related logic to Lua 5.3mpeterv2015-02-251-5/+5
| |/ | | | | | | It was only applied to Lua 5.2.
* / Fix segfault in LG_lane_newmpeterv2015-02-241-3/+3
|/ | | | | | | | | | STACK_END macro was used to check stack size of child Lua state _after_ its thread was launched. That could lead to the check failing as the child thread started manipulating the stack. The macro then called lua_error on the child state from the parent thread, causing a segfault as Lua C API is not thread-safe. The fix is to place STACK_END statements before THREAD_CREATE statement.
* preliminary Lua 5.3 supportBenoit Germain2014-12-166-55/+68
| | | | Untested, but it might just work :).
* New API lanes.sleep (bumped version to 3.9.7)Benoit Germain2014-09-182-5/+22
|
* fix lookup of globals created by on_state_createBenoit Germain2014-07-082-4/+31
| | | | | | * Postponed _G scan for function lookup database to after on_state_create invocation * Fixed a crash when USE_DEBUG_SPEW == 1
* Fix a Xbox compilation issueBenoit Germain2014-07-031-0/+4
|
* Deep userdata changesBenoit Germain2014-06-175-471/+533
| | | | | | | | | * 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()
* Minor fixes and tweaksBenoit Germain2014-05-162-201/+227
| | | | | | * bumped version to 3.9.5 * lanes.gen() error reporting improvements * fix linda.__towatch to return non-nil when the linda is empty
* Merge pull request #101 from Stepets/masterBenoit Germain2014-04-261-14/+22
|\ | | | | LuaJIT auto detect part 2
| * LuaJIT auto detect part 2Stepets2014-04-261-14/+22
| | | | | | | | now one may just type "make" without specifing flags and libs and get luajit compatible lanes build !!pkg-config required!!
* | Fix undefined returned value by linda:send()Benoit Germain2014-04-241-2/+1
| |
* | Merge branch 'master' of https://github.com/LuaLanes/lanesBenoit Germain2014-04-231-1/+4
|\|
| * LuaJIT auto detect FIXStepets2014-04-201-4/+6
| |
| * LuaJIT auto detectStepets2014-04-201-4/+5
| |
* | Fix build issues with compat.c/hBenoit Germain2014-04-236-12/+7
|/
* moved compatibility code in a separate fileBenoit Germain2014-04-035-68/+74
|
* Fixed error handling when handler isn't calledBenoit Germain2014-03-201-206/+207
| | | | | | | | * 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
* Don't mutex-wrap require() more than onceBenoit Germain2014-03-194-7/+8
|
* Fixed crash when using protect_allocator optionBenoit Germain2014-03-172-16/+16
|
* Fix a lane close crashBenoit Germain2014-02-281-4/+2
|
* linda:send() improvementsBenoit Germain2014-02-273-12/+30
| | | | | | | | | * 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)
* Fixed a pure C compilation errorBenoit Germain2014-02-271-2/+2
|
* Fix some MinGW _WIN32_WINNT-related build issuesBenoit Germain2014-02-262-12/+20
|
* Fixed some compilation warningsBenoit Germain2014-02-262-66/+68
|
* Multiverse compatibilityBenoit Germain2014-02-265-532/+627
| | | | | | | | | | | | | | | * 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
* Multi-state initialisation issueBenoit Germain2014-02-241-7/+7
| | | | | Fix lookup database table not being created when it should if Lanes is required in more than one Lua master state
* more graceful handling of out-of-memory errorsBenoit Germain2014-02-182-14/+20
| | | | | * raise an error instead of dereferencing a NULL pointer on deep userdata creation and lane struct creation
* Lanes init crash fixBenoit Germain2014-02-185-61/+95
| | | | | | | | | | | * bumped version to 3.9.1 * keeper array is allocated with master state's alloc function instead of malloc()/free() * prevent application crash when specifying a very large number of keepers in the configuration options * removed some keeper desinit legacy dead code * any error occuring during one-time inits is raised outside the one-time mutex protected code region
* lindas can have a group for keeper state assignation controlBenoit Germain2014-02-174-39/+57
|
* Deep userdata support improvementsBenoit Germain2014-02-175-574/+575
| | | | | | | | | | | | * 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-133-118/+132
| | | | | | | | | | * 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-160/+245
| | | | | | | * 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)
* Fix compilation error against Lua 5.1Benoit Germain2014-02-041-1/+3
|
* another Lua stack overflow fixBenoit Germain2014-01-241-1/+2
|
* 2 crash fixes and 1 experimentBenoit Germain2014-01-222-10/+14
| | | | | | | | | | * 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-222-32/+93
| | | | | | | | * 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)
* linda performance improvementBenoit Germain2014-01-201-5/+9
| | | | | slightly improve linda performance when the producer/consumer scenario leaves leave the key empty
* Turn potential malicious-crafted code crashes into normal Lua errorsBenoit Germain2014-01-201-99/+108
| | | | | | | | | | | | | * 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-204-70/+80
| | | | | | | * 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-163-105/+125
| | | | | | | | | | | | | | | * 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
* Fix argument checks in linda:limit()Benoit Germain2014-01-091-3/+3
|
* Linda fixesBenoit Germain2014-01-092-55/+96
| | | | | | | | | | | * 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-065-29/+61
| | | | | | * 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
* Update tools.cAlexanderKhilo2013-12-281-0/+2
| | | Actually, you shouldn't need malloc.h at all, it's obsolete; including stdlib.h should take care of what malloc.h used to handle.
* fixed a shutdown crashBenoit Germain2013-12-202-15/+26
| | | | | | | * 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