diff options
| author | Benoit Germain <benoit.germain@ubisoft.com> | 2024-06-11 18:17:46 +0200 |
|---|---|---|
| committer | Benoit Germain <benoit.germain@ubisoft.com> | 2024-06-11 18:17:46 +0200 |
| commit | 529c31f3a4ca26f2f57052db352e1f686317b19c (patch) | |
| tree | 47f9244f0e48a51e6b052374159708d948275bf2 | |
| parent | 6073478ce424b3e50e639b3f37e876a9cacc8a73 (diff) | |
| download | lanes-529c31f3a4ca26f2f57052db352e1f686317b19c.tar.gz lanes-529c31f3a4ca26f2f57052db352e1f686317b19c.tar.bz2 lanes-529c31f3a4ca26f2f57052db352e1f686317b19c.zip | |
Preliminary summary of changes resulting in Lanes 4.0.0
| -rw-r--r-- | CHANGES | 33 |
1 files changed, 33 insertions, 0 deletions
| @@ -1,5 +1,38 @@ | |||
| 1 | CHANGES: | 1 | CHANGES: |
| 2 | 2 | ||
| 3 | CHANGE 2: BGe 11-Jun-24 | ||
| 4 | * Lanes API changes | ||
| 5 | - Version is now 4.0.0 | ||
| 6 | - Lanes configuration settings: | ||
| 7 | - demote_full_userdata removed. | ||
| 8 | - keepers_gc_threshold added. Control when GC runs inside keepers. | ||
| 9 | - nb_keepers changed to nb_user_keepers. limited to 100 keepers on top of the internal keeper used by the timer Linda. | ||
| 10 | - shutdown_mode added. Controls how free running lanes are signalled at Lanes shutdown. | ||
| 11 | - strip_functions added. Only useful for Lua 5.3+. | ||
| 12 | - verbose_errors removed. | ||
| 13 | - with_timers is false by default. | ||
| 14 | - Full userdata conversion: | ||
| 15 | - __lanesignore removed. | ||
| 16 | - __lanesconvert added. Also replaces the global Lanes setting demote_full_userdata. | ||
| 17 | - Lanes API and behavior: | ||
| 18 | - new function lanes.finally(). Installs a function that gets called at Lanes shutdown. | ||
| 19 | - lanes can no longer be "killed" by hard-stopping their thread without any resource cleanup (see lane:cancel()). | ||
| 20 | - lane:join(), linda:receive(), linda:send() return nil, error in case of problem. | ||
| 21 | - lane function body must return a non-nil first value on success if lane is waited upon with lane:join(). | ||
| 22 | - lanes.sleep() accept a new argument "indefinitely" to block forever (until hard cancellation is received). | ||
| 23 | - Lindas: | ||
| 24 | - providing "auto" as name when constructing a Linda cause Lanes to provide a name built from the source location of the construction. | ||
| 25 | - specifying a group to lanes.linda() is mandatory when Lanes is configured with user Keepers. | ||
| 26 | - linda:deep() result no longer contains the raw C pointer of the Linda object. | ||
| 27 | - Lane generator settings: | ||
| 28 | - error_trace_level added. Replaces the global verbose_errors setting. | ||
| 29 | - name added. Can be used to set the name early (before the lane body calls set_debug_threadname()). | ||
| 30 | * Internal changes | ||
| 31 | - Lanes is implemented in C++20: jthread, condition_variable, mutex, string_view, variant, and more! | ||
| 32 | - Decoda support inactive by default. | ||
| 33 | - Linda no longer bind to random keepers if group is not provided on construction. Provide one! | ||
| 34 | - Deep userdata interface fully revamped to C++20 too. | ||
| 35 | |||
| 3 | CHANGE 1: BGe 9-Apr-24 | 36 | CHANGE 1: BGe 9-Apr-24 |
| 4 | * reset changelog, next entry will list API changes since last C-implementation. | 37 | * reset changelog, next entry will list API changes since last C-implementation. |
| 5 | 38 | ||
