Wish List

Here's a place to describe and discuss things that EM needs. Anything goes.

Worker-process Framework

We need a way to allow multiple processes to work together cooperatively to share processing load in large applications.

ability to 'catch' errors thrown during an EM::run [before it calls shutdown] SECOND THAT so that it's

def self.run 
 begin
 run
rescue Exception
 handle_em_error # user defined
ensure
 release_machine
end

epoll and kqueue return useful values instead of nil

a 'reason socket was closed'

IOCP for Windows. A callback for 'outbound_queue_size_has_grown_too_low' Do not allow those using select to use too many sockets.

the method 'reason_for_last_failure' -- was it a rejected connection? was it a connection closed? Were there not enough file descriptors available? that type of thing

patch s.t. if you use kQueue and it's running, it raises.

patch s.t. kQueue work with a connection which doesn't write anything [what about epoll?]

watch_directory - both inotify and kqueue can do it