aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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
* 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
|
* new API lanes.set_thread_priority()Benoit Germain2013-12-044-91/+133
|
* no need for pthread_cleanup_ pair when THREADWAIT_METHOD == THREADWAIT_CONDVARBenoit Germain2013-12-041-0/+5
|
* 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: lanes.luaBenoit Germain2013-12-021-1/+1
|
* Fix a macro checkBenoit Germain2013-11-291-1/+1
|
* supposedly improved pthread supportBenoit Germain2013-11-296-32/+89
| | | | | | | | | * 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)
* Fix a macro redefinition when compiling against Lua 5.2 with compatibility ↵Benoit Germain2013-11-261-0/+2
| | | | options enabled
* Fix a macro redefinition when compiling against Lua 5.2 with compatibility ↵Benoit Germain2013-11-261-0/+2
| | | | options enabled
* Fix a 64 bits compilation warningBenoit Germain2013-11-261-1/+1
|
* Fix a 64 bits compilation warningBenoit Germain2013-11-261-1/+1
|
* Added a comment in thread_new()Benoit Germain2013-11-221-1/+3
|
* MinGW-pthread supports -3/+3 thread priority range, so accept it API-side tooBenoit Germain2013-11-221-0/+7
|
* MinGW-pthread supports -3/+3 thread priority range, so accept it API-side tooBenoit Germain2013-11-221-1/+4
|
* Correct MinGW pthread_attr_setschedpolicy replacement.Benoit Germain2013-11-211-2/+2
|
* Add a dummy pthread_attr_setschedpolicy() for MinGW builds to fix a ENOTSUP ↵Benoit Germain2013-11-211-0/+17
| | | | failure.
* Fix compilation warning introduced by aef73939a513e67989a9ad2256f14754ebdaa28e.Benoit Germain2013-11-181-2/+3
|
* Fix internal error at lane creation when the generator doesn't open any base ↵Benoit Germain2013-11-181-5/+4
| | | | | library Fix issue #77.
* Get rid of uintptr_t to remove dependency on stdint.hBenoit Germain2013-11-181-1/+1
| | | Fix issue #76.
* Fix a compilation warning about an unused variableBenoit Germain2013-11-181-1/+1
| | | Fix issue #74.
* Fix a deadlock when GCing during a linda operation.Benoit Germain2013-11-181-1/+3
| | | See issue #73.
* Bumped version to 3.7.2Benoit Germain2013-11-161-1/+1
|
* EnableCrashingOnCrashes changesBenoit Germain2013-11-161-16/+43
| | | | * make EnableCrashingOnCrashes a one-time operation * attempt to catch SIGABRT
* lanes.genlock() improvements and fixBenoit Germain2013-11-161-20/+34
| | | | * 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
* Added a comment in keeper_call()Benoit Germain2013-11-161-0/+4
|
* Ignore ERROR_WAIT_NO_CHILDREN issued by WaitForSingleObjectBenoit Germain2013-11-161-4/+8
| | | | ERROR_WAIT_NO_CHILDREN means a thread was killed (lane terminated because of error raised during a linda transfer for example) while having grabbed some mutex this seems not to be a big problem as we will grab it just the same, so ignore this particular error
* Fix some compiler-specific build issuesBenoit Germain2013-11-161-1/+7
|
* Changed a DEBUGSPEW outputBenoit Germain2013-11-161-1/+1
|
* Minor macro definition fixBenoit Germain2013-11-161-1/+1
|
* Fix a case where an error could be raised inside a keeper stateBenoit Germain2013-11-131-1/+2
|
* Removed bad stack check code causing invalid assertionsBenoit Germain2013-11-071-2/+0
|
* Improved some DEBUGSPEW outputBenoit Germain2013-11-071-2/+6
|
* Make set_finalizer(), set_debug_threadname(), cancel_test() and ↵Benoit Germain2013-11-071-3/+8
| | | | set_error_reporting() transferable from lane to lane