Revision history for Perl extension Coro. 0.6 Thu Nov 21 11:09:06 CET 2002 - made lazy context switching the default. - fixed the bug where SemaphoreSet::guard was the same as timed_guard and timed_guard was missing. - fix a memleak in Coro::Timer. - reclassified context sharing as not experimental. 0.534 Sun Apr 14 03:05:12 CEST 2002 - fixed backspace => tab in header parsing (myhttpd). - added eg/readline, for elmex. - Coro::Event now calls ->start on first call instead of ->again, which created wrong timeouts for the first ->next. - fixed a bug where Coro::Socket returned a closed socket instead of nothing on ECONNREFUSED and similar error conditions. 0.533 Mon Feb 18 18:49:40 CET 2002 - adapt to finally working Event-0.85. - fixed buggy event initialization (trapped under windows, but how could it possibly have worked anywhere?) 0.532 Wed Jan 16 02:45:32 CET 2002 - removed the reference to pp_entersub, might work on (some) win32 perls now (testsuite works under cygwin, without Event, which freezes). 0.531 Mon Dec 10 22:18:44 CET 2001 - Fixed a bug in SemaphoreSet::timed_down. 0.53 Tue Nov 27 21:11:13 CET 2001 - some tests for Event. - slightly different internal architecture to get refcnt into the object and not the reference. might fix a few bugs, certainly did introduce new ones. - Coro::Timer (independent of Event). - new timed_wait functions for Coro::Signal, Semaphore, SemaphoreSet. 0.52 Tue Nov 6 21:36:18 CET 2001 - ported to cygwin (trivial). patch by Gerrit P. Haase . - small setjmp code fix by Sullivan.DanielJ@epamail.epa.gov. 0.51 Thu Nov 1 20:39:01 CET 2001 - terminate/cancel now work properly (otherwise termination could cause a "next coroutine is not and contains not..." error. - added Coro::Socket::shutdown. - Coro::Event::loop no is the same as Event::loop. - implemented terminate with args + join. 0.5 Fri Sep 28 16:15:35 CEST 2001 - fixed "print" on a Coro::Handle. The print method worked. - small tweaks (seem to reduce memory consumption a lot) in various modules. - splendid use of "no warnings" scattered throughout. - added Coro::Handle::rbuf, fixed Coro::Handle::fh. 0.49 Sun Sep 16 02:42:45 CEST 2001 - changed some method calls to function calls for speed inside Coro::Handle. - make Coro::Handle use an array instead of a hash for speed reasons. - IRIX mystery solved: it's SGI's NT, after all: "standard, huh?". sjlj and ucontext should now work. - IRIX-specific port for libcoro. - swapped order of accept results to match IO::Socket. - changed getsock/peername to sock/peername to match IO::Socket. - fixed a bug that caused segfault when returning to main task under some circumstances. - other bugfixes. 0.45 Sun Sep 2 02:54:01 CEST 2001 - new method Coro::Handle::timeout. - corrected speling of set...name to get...name in Coro::Socket. - Coro::Socket::accept now returns a Coro::Socket, not a Coro::Handle. - Coro::Handle now supports fileno and FILENO. - added eg/myhttpd, a web server. - Coro::Socket now accepts numeric ports as well as "port(number)" syntax. - moved some scheduling primitives into xs code. more to come. - new simple priority system. - implemented Coro::Event using XS, almost four times faster! - small memory corruption problem fixed (boy that was difficult). 0.13 Wed Aug 8 16:53:07 CEST 2001 - new method Coro::Handle::readline. - added eg/lwp and Coro::Handle::autoflush, to make LWP work. (see eg/lwp on how to make LWP non-blocking). - renamed Coro::Socket::new_inet to new. - added Coro::Util, some utility functions. - die/eval now works better (still get annoying (but true ;) "Callback called exit" messages). - Coro::Handle now supports timeout, and Coro::Socket Timeout. - much better Coro::Socket support. 0.12 Fri Jul 27 04:19:01 CEST 2001 - do not use mmap if neither MAP_ANON nor MAP_ANONYMOUS is defined. - very experimental stack sharing algorithm. not 100% safe but should work well in practise ;) - added Coro::RWLock. - Coro::Specific now works. 0.11 Tue Jul 24 22:49:21 CEST 2001 - added specialized hack for newer and older linux versions (fast). - renamed Coro::Event::IO to Coro::Handle. - new module Coro::Socket. 0.1 Tue Jul 24 01:47:53 CEST 2001 - release candidate 3. A rather new internal structure :( - the great renaming: Damian Conway gave me a suitable replacement for yield. - added Coro/libcoro, a portable coroutine implementation for C (not even perl-dependent!!!), which can be used by Coro::State. - renamed SAVE_DEFSV (on xs-level only) to avoid symbol clash in perl-5.6. - new function Coro::Event::idle. - the idle process is now overriden by default in Coro::Event. - Coro::Channel now enforces the size. - canceling events now works in all cases. - Coro state now include $_ and $@. - yet another bug workaround that I do not really understand :( - new module Coro::Event::IO (very undocumented) to do non-blocking i/o. - performance tuning. 0.08 Thu Jul 19 06:13:25 CEST 2001 - release candidate 2 (new functionality). - add Coro::State::flush function. - transfer now supports a flags value (mostly for speed ATM). - might compile and work in the presence of threads now. - continuations have a saner syntax. - no more memleaks. 0.07 Tue Jul 17 17:40:18 CEST 2001 - release candidate 1 ;) - slightly nicer code. - fixed a scheduling bug in Coro::Event. 0.06 Tue Jul 17 04:23:24 CEST 2001 - ok, I found the showstopper - the same sub must not be re-entered in two different coroutines, otherwise => crash. I see no easy solution to this problem, except by walking the call chaing and saving/restoring the cv's, which is what I do now. - memory leaks still latent, especially at thread termination. - Coro::Event now works (haha). 0.05 Sun Jul 15 17:32:20 CEST 2001 - fixed a few issues in Coro::Event. - I forgot to include Coro::Event in 0.04 :(:(:( 0.04 Sun Jul 15 05:24:59 CEST 2001 - @_ is now properly localized. - Coro::State is now easier subclassable. - Coro::Cont now coroutine-aware. - Coro::Specific is a low-overhead module to create coroutine-specific vars. - Coro::Event provides a simple interface to Event. 0.03 Fri Jul 13 14:51:52 CEST 2001 - transfer() now implemented in XS (beware). - new module Coro::Cont for really faked continuations. - big internal architecture changes: Coro::State is now really low-level and can thus be used to implement other interesting things, While "Coro::" implements a process-like model. Still crude and subject to change. - $_ and $@ are no longer being localized. 0.02 Tue Jul 10 01:38:17 CEST 2001 - implemented "async" attribute. - $_ and $@ are now localized. - added Coro::Channel. - more testcases, still no docs. 0.01 Tue Jul 3 02:18:41 CEST 2001 - original version; copied from Convert::Scalar.