--- Coro/Changes 2008/11/14 07:22:11 1.411 +++ Coro/Changes 2008/11/18 10:35:01 1.431 @@ -5,16 +5,57 @@ actor model (which is cool in a lot of important aspects (failures!), but very lacking in others (higher level ipc)). +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 - - NEW ARCHITECTURE: use 4.912 for the stable version. + - NEW ARCHITECTURE: use the latest 4.x version if you experience + stability issues. - bump API version to 7 - all dependents must be recompiled. - - directly patch the entersub opcode calling ssl functions (cede, - transfer and so on). this does speed up context switching by - up to 10%. More importanly, it frees us from the hardcoded - behaviour of entersub, so we might actually be able to return - something from those functions. - - take advanatge of __builtin_frame_address on gcc. - - expose THX in coroapi (not sure whether this was a wise decision). + - removed timed_* functions - they were not being used anyways + and should be replaced by a more generic mechanism - + and were annoying to support anyways :) + - removed SemaphoreSet's waiter method - use sem instead. + - Coro::Semaphore->adjust didn't correctly wake up enough waiters. + - async_pool did free a scalar value twice + ("Attempt to unreference..."). + - 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(. + - perl's process emulation is now not even theoretically supported + anymore. + - 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 + more importanly, it frees us from the hardcoded behaviour of + entersub, so we might actually be able to return something from + those functions and atcually create new ones. + - take advantage of __builtin_frame_address on gcc. + - expose THX in coroapi (not sure whether this was a wise decision, + as "threaded" perls are running at half speed anyways). + - implement execute_slf (schedule-like-function) interface that makes + it possible to implement schedule-like-functions in XS. + - use new SLF interface to massively speed up Coro::EV by roughly a + factor of two. + - used new SLF interface to massively speed up Coro::Semaphore by a + factor of three. + - used new SLF interface to speed up Coro::AIO by roughly a factor of + four and reduce its memory usage considerably. + - implement Coro::SemaphoreSet purely in terms of Coro::Semaphore, + for a nice speedup and vastly more correct behaviour. Also implement + 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. + - 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). + +4.913 Sat Nov 15 07:58:28 CET 2008 + - async_pool did free a scalar value twice + ("Attempt to unreference..."). 4.912 Thu Nov 13 18:31:23 CET 2008 - minor cleanups.