During the last year, I was busy writing an async I/O module, IO::Lambda, which
I believe does the task of expressing callback-based I/O logic much more
elegantly than it was ever done before, by using a different concept. The
module includes async versions of DNS, SNMP, HTTP, and DBI (the cool part about
DBI is that it can work asynchronously by using either forks, threads, or even
a socket connection). It's a lot, but not as much a lot as I think I need. I'm planning to use IO::Lambda to write a
new separate module for httpd, and possibly modules for ftp and irc too, but I
don't have enough time for it all. Also I find it hard to determine the right
balance for httpd, where the module ends, and where a httpd application begins.
This is also a help call: if anyone wants to write new modules, or contribute to the development of the existing ones, please
volunteer, that would be really greatly appreciated.
If you don't know where to start, there's documentation
There's also a mailing list at io-lambda-general at lists.sourceforge.net,
and in realtime I'm McFist on #perl.
Update: next version includes many (but not all) recommendations. I went for the low hanging fruit with small changes, larger changes in the structure of the manual are underway.
Next update: 1.03
It includes IO::Lambda::Mutex, as suggested by tilly - thanks!
Also, as promised, I made a wiki, where everyone is welcome to contribute.