aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Delete some old rockspecsv3.9.43.9.4Benoit Germain2014-03-246-396/+0
|
* 3.9.4 rockspecBenoit Germain2014-03-241-0/+66
|
* Fixed error handling when handler isn't calledBenoit Germain2014-03-203-207/+218
| | | | | | | | * 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-195-7/+11
|
* Fixed crash when using protect_allocator optionBenoit Germain2014-03-173-16/+19
|
* Fix a lane close crashBenoit Germain2014-02-281-4/+2
|
* linda:send() improvementsBenoit Germain2014-02-275-14/+42
| | | | | | | | | * 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-263-66/+69
|
* Multiverse compatibilityBenoit Germain2014-02-2610-545/+653
| | | | | | | | | | | | | | | * 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-242-7/+10
| | | | | 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-183-14/+23
| | | | | * raise an error instead of dereferencing a NULL pointer on deep userdata creation and lane struct creation
* Lanes init crash fixBenoit Germain2014-02-186-61/+102
| | | | | | | | | | | * 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-177-44/+66
|
* Deep userdata support improvementsBenoit Germain2014-02-177-584/+604
| | | | | | | | | | | | * 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-137-127/+178
| | | | | | | | | | * 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-104-176/+302
| | | | | | | * 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
|
* Create lanes-3.8.3-1.rockspecv3.8.3Benoit Germain2014-01-241-0/+66
|
* another Lua stack overflow fixBenoit Germain2014-01-242-1/+5
|
* 2 crash fixes and 1 experimentBenoit Germain2014-01-225-13/+28
| | | | | | | | | | * 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-225-78/+169
| | | | | | | | * 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-203-81/+66
| | | | | 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-204-103/+127
| | | | | | | | | | | | | * 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-206-78/+101
| | | | | | | * 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-168-126/+258
| | | | | | | | | | | | | | | * 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
* rockspec for version 3.7.7v3.7.7Benoit Germain2014-01-131-0/+66
|
* Fix argument checks in linda:limit()Benoit Germain2014-01-091-3/+3
|
* Linda fixesBenoit Germain2014-01-094-65/+123
| | | | | | | | | | | * 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-067-32/+72
| | | | | | * 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
* Merge pull request #83 from AlexanderKhilo/patch-1Benoit Germain2013-12-311-0/+2
|\ | | | | Update tools.c
| * 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-204-24/+54
| | | | | | | * 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 config option demote_full_userdataBenoit Germain2013-12-202-37/+38
| | | | | use demote_full_userdata to select between light userdata demotion or raising an error when attempting to transfer a non-deep full userdata
* Fix an incorrect assertion in lanes.require()Benoit Germain2013-12-131-4/+4
|
* Update make-vc.cmdBenoit Germain2013-12-061-1/+1
|
* new API lanes.set_thread_priority()Benoit Germain2013-12-046-94/+161
|
* no need for pthread_cleanup_ pair when THREADWAIT_METHOD == THREADWAIT_CONDVARBenoit Germain2013-12-041-0/+5
|
* Merge pull request #80 from benoit-germain/masterBenoit Germain2013-12-035-227/+221
|\ | | | | pthread thread priority code refactoring
| * Fixed missing extern variable declarations resulting in multiple variable ↵Benoit Germain2013-12-021-1/+1
| | | | | | | | instances
| * MinGW-pthread doesn't seem to have pthread_timedjoin_np after allBenoit Germain2013-12-021-1/+1
| |
| * pthread thread priority refacto: threading.cBenoit Germain2013-12-021-216/+212
| |
| * pthread thread priority refacto: threading.hBenoit Germain2013-12-021-6/+3
| |
| * pthread thread priority refacto: lanes.cBenoit Germain2013-12-021-1/+2
| |
| * pthread thread priority refacto: index.htmlBenoit Germain2013-12-021-1/+1
| |
| * pthread thread priority refacto: lanes.luaBenoit Germain2013-12-021-1/+1
|/
* line ending uniformisationBenoit Germain2013-11-300-0/+0
|
* Fix a macro checkBenoit Germain2013-11-291-1/+1
|
* supposedly improved pthread supportBenoit Germain2013-11-298-40/+105
| | | | | | | | | * 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)