… | |
… | |
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 interesting type of recursive coro |
|
|
31 | destruction (testcase by Christopher J. Madsen). |
|
|
32 | - change jit executable strategy, to hopefully appease more |
|
|
33 | hardened environments. |
|
|
34 | |
|
|
35 | 6.57 Wed Jul 29 15:08:44 CEST 2020 |
|
|
36 | - override AnyEvent condvar methods "properly", as AnyEvent |
|
|
37 | has support for pluggable condvars since 2011. This also |
|
|
38 | avoids problems with recursive waits by avoiding to mix |
|
|
39 | impl methods with coro code. |
|
|
40 | - allow rouse_wait to be called in a different thread. |
|
|
41 | - slightly clarify rouse_cb/rouse_wait documentation. |
|
|
42 | - slightly improve rouse callback performance and memory usage. |
|
|
43 | - try to report correct calller when throwing exception in |
|
|
44 | on $condvar->recv, not a useless line in Coro::AnyEvent. |
|
|
45 | |
|
|
46 | 6.56 Thu Feb 20 19:40:07 CET 2020 |
|
|
47 | - Coro::EV::time*once functions used ev_once, which is not cancelable. |
|
|
48 | This could cause problems due to I/O watchers not being stopped up |
|
|
49 | on exceptions/cancellation. |
10 | |
50 | |
11 | 6.55 Fri Jul 19 17:28:09 CEST 2019 |
51 | 6.55 Fri Jul 19 17:28:09 CEST 2019 |
12 | - Coro::RWLock woke up only one reader instead of all after a wrlock |
52 | - Coro::RWLock woke up only one reader instead of all after a wrlock |
13 | (analyzed and patch by Maxim Skorobogatov). |
53 | (analyzed and patch by Maxim Skorobogatov). |
14 | - slightly improved documentation of Coro::RWLock and RWLock testcase. |
54 | - slightly improved documentation of Coro::RWLock and RWLock testcase. |