--- Coro/Changes 2008/11/18 10:42:43 1.432 +++ Coro/Changes 2008/11/19 02:07:48 1.435 @@ -7,7 +7,6 @@ TODO: testcancel TODO: guard as SLF - to avoid deadlocks. -TODO: Coro::Signal as SLF. - avoid deadlock in Coro::Channel if maxsize == 1 (Richard Hundt). 5.0 @@ -24,11 +23,12 @@ - fix a longstanding bug where calling terminate on a coro that was waiting for a semaphore that was just becoming available would cause a deadlock (semaphore would get into a state where - it was available but waiters were waiting(. + it was available but waiters were still blocked). - calling throw on a coroutine that is waiting for a semaphore will no longer make it acquire the semaphore (and thus leak a count). - perl's process emulation is now not even theoretically supported anymore. + - new function Coro::Semaphore::wait. - use named constants in Coro::Channel (Richard Hundt). - directly patch the entersub opcode calling SLF functions (cede, transfer and so on). this does speed up context switching, but @@ -51,6 +51,9 @@ a new method "sem" to get at the underlying semaphore object. - implement Coro::Channel in terms of Coro::Semaphore, for a moderate (in comparison) 20-40% speedup. + - used new SLF interface to reimplement Coro::Signal gaining + some unknown (because I was too lazy), but certain, speedup, and also + making signals reliable for the first time. - forgot to include Coro/libcoro/README in the dist for all these years. - work around a freebsd pthreads bug (manual testcancel is required as pthread_cond_wait isn't a cancellation point on freebsd).