aboutsummaryrefslogtreecommitdiff
path: root/src/lanes.lua (follow)
Commit message (Collapse)AuthorAgeFilesLines
* New global setting "strip_functions"Benoit Germain2024-06-031-23/+25
|
* Moved lanes.sleep implementation to the C-sideBenoit Germain2024-06-031-23/+3
|
* Some API changesBenoit Germain2024-05-311-15/+23
| | | | | | * lanes.timers() can return nil, cancel_error if interrupted * linda:receive() always return a k,v, where k is nil when v is "timeout" or cancel_error * lanes.sleep returns nil, "timeout" during normal operations
* Improved multi-keeper testsBenoit Germain2024-05-311-18/+19
|
* Keeper management modernisation and improvementsBenoit Germain2024-05-301-5/+5
| | | | | | | * use a std::variant to manage the distinction between one or more keeper states. Use std::unique_ptr<Keeper[]> to manage the multiple keeper case. * setting "nb_keepers" renamed "nb_user_keepers", to indicate these are in addition to internal keeper #0 used for timers. * stricter lanes.linda() argument checking. group is imposed if more than one keeper is used. * more tests
* Fix clang-tidy issues (most notably Microsoft-specific explicit constructor ↵Benoit Germain2024-05-291-2/+2
| | | | calls)
* Fix lanes.lua dependency on "io"Benoit Germain2024-05-291-28/+25
|
* New Lanes finalizer API lanes.finally()Benoit Germain2024-05-281-0/+1
|
* Minor code tweaksBenoit Germain2024-05-171-10/+15
|
* Error reporting revampBenoit Germain2024-05-171-4/+17
| | | | | | * set_error_reporting() is gone * new lane generator setting error_reporting_level * basic/extended stack trace is selectable at runtime instead of compile-time
* Fix missing lanes.nullBenoit Germain2024-05-171-0/+1
|
* Almost nothingBenoit Germain2024-05-141-2/+1
|
* Linda API changesBenoit Germain2024-05-131-7/+10
| | | | | * timeout clarifications (negative values are no longer accepted, use nil instead) * linda(send, linda.null, key, ...) removed, if you want to send a nil, just do it as usual
* API changesBenoit Germain2024-05-131-2/+4
| | | | | * lanes.sleep accepts 'indefinitely'. * settings.with_timers is false by default
* New lane generator option opt_tbl.nameBenoit Germain2024-05-131-9/+13
|
* de-megathodize lanes.configure()Benoit Germain2024-05-021-607/+649
|
* C++ migration: use std::jthread, std::condition_variable, std::chrono.Benoit Germain2024-04-081-222/+229
| | | | | | | | win32 pthread support is gone new setting configure.shutdown_mode for cancellation of free-running threads at shutdown. no more hard thread termination! If a thread doesn't cooperate, an error is raised. lane.status "killed" is gone lane:cancel can't force-kill.
* Enable manual control of GC inside keeper statesBenoit Germain2024-04-051-0/+5
|
* Finalize version 3.16.2v3.16.2Benoit Germain2023-08-171-1/+1
|
* new .internal_allocator configuration IUNTESTED)Benoit Germain2023-08-091-1/+7
| | | | new configuration option .internal_allocator to help LuaJIT users. THIS IS YET UNTESTED, USE AT YOUR OWN RISKS.
* Make allocator threadsafe by default when running LuaJIT, because LuaJIT ↵Benoit Germain2022-02-211-1/+2
| | | | allocator is not
* Changed all indentations to all whitespacesBenoit Germain2022-02-071-690/+690
| | | | Tabs mess up alignment of stack contents comments, so I'm done with them.
* Lane cancellation reworkBenoit Germain2019-04-261-14/+3
| | | | | opt.cancelstep is gone, hook is installed by lane:cancel() if requested lane:cancel() rework (see doc)
* Trailing whitespaces deleted from lanes.luavalid-ptr2018-11-271-10/+10
|
* Lanes version available in public headerBenoit Germain2018-11-261-1/+1
|
* User-provided unknown configure option raises an errorBenoit Germain2018-11-261-0/+6
|
* protect_allocator configure option is gone, long live allocator (more ↵Benoit Germain2018-11-251-3/+5
| | | | embedders-friendly)
* new API lanes.set_thread_affinity(), and et_debug_threadname implemented ↵Benoit Germain2018-11-091-1/+2
| | | | with win32 pthread
* Fix error with LuaJIT when ffi package isn't requiredBenoit Germain2018-11-021-1/+1
|
* Better protect_allocator autodetectionBenoit Germain2018-10-311-1/+1
|
* Fix error when using strict checkingBenoit Germain2017-08-031-1/+1
|
* Table transfer improvementsBenoit Germain2017-06-051-10/+8
| | | | | | | | * 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
* Improve LuaJIT supportBenoit Germain2017-05-101-0/+3
| | | | | | | * 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 needed to call configure. It is called automatically with no settings if ↵aryajur2015-09-181-478/+489
| | | | not called manually
* Fix standard library lists for Lua 5.3mpeterv2015-04-121-0/+1
| | | | | Fixes crash on require under Lua 5.3 without LUA_COMPAT_5_2. Fixes utf8 library not loaded under Lua 5.3.
* New API lanes.sleep (bumped version to 3.9.7)Benoit Germain2014-09-181-4/+21
|
* Minor fixes and tweaksBenoit Germain2014-05-161-83/+104
| | | | | | * bumped version to 3.9.5 * lanes.gen() error reporting improvements * fix linda.__towatch to return non-nil when the linda is empty
* lindas can have a group for keeper state assignation controlBenoit Germain2014-02-171-11/+0
|
* more fixes/tweaks about cancelled lindasBenoit Germain2014-02-131-35/+53
| | | | | | | | | | * 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 lane launcher option gc_cbBenoit Germain2014-01-221-4/+10
| | | | | | | | * 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)
* get()/set() improvementsBenoit Germain2014-01-201-1/+1
| | | | | | | * 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-161-1/+1
| | | | | | | | | | | | | | | * 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 on_state_create circular logic issueBenoit Germain2014-01-061-1/+1
| | | | | | * 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
* new config option demote_full_userdataBenoit Germain2013-12-201-34/+16
| | | | | use demote_full_userdata to select between light userdata demotion or raising an error when attempting to transfer a non-deep full userdata
* new API lanes.set_thread_priority()Benoit Germain2013-12-041-0/+1
|
* pthread thread priority refacto: lanes.luaBenoit Germain2013-12-021-1/+1
|
* 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
* version 3.7.0Benoit Germain2013-10-111-40/+32
| | | | | | | | | | | | * 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
* Fix broken timersBenoit Germain2013-10-041-0/+1
|
* version 3.6.6Benoit Germain2013-09-271-12/+7
| | | | | | | | 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