… | |
… | |
5 | TODO: __GCC_HAVE_DWARF2_CFI_ASM |
5 | TODO: __GCC_HAVE_DWARF2_CFI_ASM |
6 | TODO: swap_sv, maybe add scope_swap_sv? |
6 | TODO: swap_sv, maybe add scope_swap_sv? |
7 | TODO: croak when async_pool tries to run canceled thread? |
7 | TODO: croak when async_pool tries to run canceled thread? |
8 | TODO: how to debug safe_cancel failure (vebrose mode? show how to make backtrace?) |
8 | TODO: how to debug safe_cancel failure (vebrose mode? show how to make backtrace?) |
9 | TODO: scalar context for Coro::AIO wrappers? |
9 | TODO: scalar context for Coro::AIO wrappers? |
|
|
10 | |
|
|
11 | TODO: State.xs could short-circuit some macros such as CORO_EXECUTE_SLF |
|
|
12 | TODO: use frame->destroy to improve Coro::EV |
|
|
13 | |
|
|
14 | TODO: concurrent ->recv on same condvar |
|
|
15 | sub Coro::AnyEvent::CondVar::_send { |
|
|
16 | if ($_[0]{_ae_coro}) { |
|
|
17 | $_->ready |
|
|
18 | for values %{ delete $_[0]{_ae_coro} } |
|
|
19 | } |
|
|
20 | }; |
|
|
21 | |
|
|
22 | sub Coro::AnyEvent::CondVar::_wait { |
|
|
23 | until ($_[0]{_ae_sent}) { |
|
|
24 | $AnyEvent::CondVar::Base::WAITING = 0; # avoid recursive check by AnyEvent |
|
|
25 | local $_[0]{_ae_coro}{$Coro::current+0} = $Coro::current; |
|
|
26 | Coro::schedule; |
|
|
27 | } |
|
|
28 | }; |
|
|
29 | |
|
|
30 | - potential fix for an interetsing type of recursive coro |
|
|
31 | destruction (testcase by Christopher J. Madsen). |
|
|
32 | |
|
|
33 | 6.57 Wed Jul 29 15:08:44 CEST 2020 |
|
|
34 | - override AnyEvent condvar methods "properly", as AnyEvent |
|
|
35 | has support for pluggable condvars since 2011. This also |
|
|
36 | avoids problems with recursive waits by avoiding to mix |
|
|
37 | impl methods with coro code. |
|
|
38 | - allow rouse_wait to be called in a different thread. |
|
|
39 | - slightly clarify rouse_cb/rouse_wait documentation. |
|
|
40 | - slightly improve rouse callback performance and memory usage. |
|
|
41 | - try to report correct calller when throwing exception in |
|
|
42 | on $condvar->recv, not a useless line in Coro::AnyEvent. |
|
|
43 | |
|
|
44 | 6.56 Thu Feb 20 19:40:07 CET 2020 |
|
|
45 | - Coro::EV::time*once functions used ev_once, which is not cancelable. |
|
|
46 | This could cause problems due to I/O watchers not being stopped up |
|
|
47 | on exceptions/cancellation. |
|
|
48 | |
|
|
49 | 6.55 Fri Jul 19 17:28:09 CEST 2019 |
|
|
50 | - Coro::RWLock woke up only one reader instead of all after a wrlock |
|
|
51 | (analyzed and patch by Maxim Skorobogatov). |
|
|
52 | - slightly improved documentation of Coro::RWLock and RWLock testcase. |
|
|
53 | - quickly (re)-ported to minix 3.3 before minix crashed again. |
|
|
54 | |
|
|
55 | 6.54 Sun Dec 16 11:06:07 CET 2018 |
|
|
56 | - reinstate Coro::Select::select prototype - it breaks more than it fixes. |
10 | |
57 | |
11 | 6.53 Sun Dec 16 10:33:15 CET 2018 |
58 | 6.53 Sun Dec 16 10:33:15 CET 2018 |
12 | - the autogenerated prototypes of Coro::AIO now add ";" at the end |
59 | - the autogenerated prototypes of Coro::AIO now add ";" at the end |
13 | to avoid generating named unary operators and messing up parsing |
60 | to avoid generating named unary operators and messing up parsing |
14 | (mostly affects aio_mlockall 4 | 8 which was parsed as |
61 | (mostly affects aio_mlockall 4 | 8 which was parsed as |