--- Coro/Changes 2016/06/25 19:22:33 1.661 +++ Coro/Changes 2021/06/24 19:10:06 1.691 @@ -5,7 +5,93 @@ TODO: __GCC_HAVE_DWARF2_CFI_ASM TODO: swap_sv, maybe add scope_swap_sv? TODO: croak when async_pool tries to run canceled thread? +TODO: how to debug safe_cancel failure (vebrose mode? show how to make backtrace?) +TODO: scalar context for Coro::AIO wrappers? +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 + avoids problems with recursive waits by avoiding to mix + impl methods with coro code. + - allow rouse_wait to be called in a different thread. + - slightly clarify rouse_cb/rouse_wait documentation. + - slightly improve rouse callback performance and memory usage. + - try to report correct calller when throwing exception in + on $condvar->recv, not a useless line in Coro::AnyEvent. + +6.56 Thu Feb 20 19:40:07 CET 2020 + - Coro::EV::time*once functions used ev_once, which is not cancelable. + This could cause problems due to I/O watchers not being stopped up + on exceptions/cancellation. + +6.55 Fri Jul 19 17:28:09 CEST 2019 + - Coro::RWLock woke up only one reader instead of all after a wrlock + (analyzed and patch by Maxim Skorobogatov). + - slightly improved documentation of Coro::RWLock and RWLock testcase. + - quickly (re)-ported to minix 3.3 before minix crashed again. + +6.54 Sun Dec 16 11:06:07 CET 2018 + - reinstate Coro::Select::select prototype - it breaks more than it fixes. + +6.53 Sun Dec 16 10:33:15 CET 2018 + - the autogenerated prototypes of Coro::AIO now add ";" at the end + to avoid generating named unary operators and messing up parsing + (mostly affects aio_mlockall 4 | 8 which was parsed as + (aio_mlockall 4) | 8). + - do not use a prototype for select in Coro::Select, as CORE::select also + doesn't have one. + +6.52 Tue Aug 14 18:49:43 CEST 2018 + - libcoro update: allow sharing of coro threads using the pthreads + backend among different pthreads, as is required by Coro::Multicore. + - always allow ->call and ->eval when the coro is the current coroutine. this + makes it possible, among other things, to call these on $Coro::main. + - minor code cleanups. + +6.514 Thu Aug 31 18:25:31 CEST 2017 + - safe_cancel no longer croaks when called on already-destroyed + thread, but instead "just works". + +6.513 Sat Jul 15 01:18:51 CEST 2017 + - experimental 5.22 comaptibility changes (PadlistNAMES). + - removed attributes example and made sure the other examples + still work. + - fix some statevar types for newer perls, should be of no consequence. + +6.512 Fri Jul 14 05:03:17 CEST 2017 + - seems to pass test suite down till 5.8.9, so make this the + minimum requirement in Makefile.PL. + - experimental 5.24 compatibility changes (SUB_ARGARRAY). + - experimental 5.26 compatibility changes (PL_comppad -> PADOFFSET). + - disable FORTIFY_SOURCE to avoid broken (but well-intentioned) + fortified longjmp variants in some libcs. + - re-try JIT allocation without PROT_EXEC, to hopefully improve + portability (still doesn't seem to work around broken selinux + mmap everywhere). + - speling fixes (Xavier Guimard). + +6.511 Sun Jun 26 23:44:50 CEST 2016 + - make it compile with threaded perls again. - simplify and speed up __DIE__ and __WARN__ handling. 6.51 Sat Jun 25 20:57:20 CEST 2016