aboutsummaryrefslogtreecommitdiff
path: root/src/lanes.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-24another Lua stack overflow fixBenoit Germain2-1/+5
2014-01-222 crash fixes and 1 experimentBenoit Germain5-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
2014-01-22new lane launcher option gc_cbBenoit Germain5-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)
2014-01-20linda performance improvementBenoit Germain3-81/+66
slightly improve linda performance when the producer/consumer scenario leaves leave the key empty
2014-01-20Turn potential malicious-crafted code crashes into normal Lua errorsBenoit Germain4-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
2014-01-20get()/set() improvementsBenoit Germain6-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()
2014-01-16Cancellation improvements and some fixesBenoit Germain8-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