aboutsummaryrefslogtreecommitdiff
path: root/CHANGES
blob: 1b0a354b6c2589e31b1b28be523b0eb51f7f1df8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
CHANGES:

CHANGE 2: BGe 11-Jun-24
   * Lanes API changes
       - Version is now 4.0.0
       - Lanes configuration settings:
           - demote_full_userdata removed. Use __lanesconvert instead.
           - keepers_gc_threshold added. Controls when GC runs inside keepers.
           - nb_keepers changed to nb_user_keepers. limited to 100 keepers on top of the internal keeper used by the timer Linda.
           - shutdown_mode added. Controls how free running lanes are signalled at Lanes shutdown.
           - strip_functions added. Only useful for Lua 5.3+.
           - verbose_errors removed. Use lane error_trace_level instead.
           - with_timers is false by default.
        - Full userdata conversion:
            - __lanesignore removed. Use __lanesconvert instead.
            - __lanesconvert added.
        - Lanes API and behavior:
            - new function lanes.finally(). Installs a function that gets called at Lanes shutdown.
            - lanes have a __close metamethod that calls join().
            - lanes can no longer be "killed" by hard-stopping their thread without any resource cleanup (see lane:cancel()).
            - lane:join() returns nil, error in case of problem.
            - lane function body must return a non-nil first value on success if lane is waited upon with lane:join().
            - lanes.sleep() accept a new argument "indefinitely" to block forever (until hard cancellation is received).
        - Lindas:
            - providing "auto" as name when constructing a Linda cause Lanes to provide a name built from the source location of the construction.
            - specifying a group to lanes.linda() is mandatory when Lanes is configured with user Keepers.
            - linda:deep() result no longer contains the raw C pointer of the Linda object.
            - linda :receive(), :send(), :get(), :set(), :limit() return nil, error in case of problem. Returned values in case of success change too.
            - Lindas have a __close metamethod that calls any provided suitable handler at Linda creation.
        - Lane generator settings:
            - error_trace_level added. Replaces the global verbose_errors setting.
            - name added. Can be used to set the name early (before the lane body calls set_debug_threadname()).
   * Internal changes
       - Lanes is implemented in C++20: thread, condition_variable, mutex, string_view, variant, and more!
       - Almost all platform-specific code is gone (only a small bit for thread priority and affinity remains).
       - Decoda support inactive by default.
       - Deep userdata interface fully revamped to C++20 too.

CHANGE 1: BGe 9-Apr-24
   * reset changelog, next entry will list API changes since last C-implementation.

(end)