--- Coro/Changes 2020/07/29 13:09:19 1.690 +++ Coro/Changes 2021/06/24 19:10:06 1.691 @@ -11,6 +11,23 @@ TODO: State.xs could short-circuit some macros such as CORO_EXECUTE_SLF TODO: use frame->destroy to improve Coro::EV +TODO: concurrent ->recv on same condvar +sub Coro::AnyEvent::CondVar::_send { + if ($_[0]{_ae_coro}) { + $_->ready + for values %{ delete $_[0]{_ae_coro} } + } +}; + +sub Coro::AnyEvent::CondVar::_wait { + until ($_[0]{_ae_sent}) { + $AnyEvent::CondVar::Base::WAITING = 0; # avoid recursive check by AnyEvent + local $_[0]{_ae_coro}{$Coro::current+0} = $Coro::current; + Coro::schedule; + } +}; + + 6.57 Wed Jul 29 15:08:44 CEST 2020 - override AnyEvent condvar methods "properly", as AnyEvent has support for pluggable condvars since 2011. This also