Checkout
Eric Covener
committed
on 11 May 14
Extend the socket callbacks in event to allow a timeout on the I/O callback.
When a socket callback has a timeout, an associated timer even… Show more
Extend the socket callbacks in event to allow a timeout on the I/O callback.

When a socket callback has a timeout, an associated timer event is used to

remove the sockets from the pollset and call a timeout function.

* This includes a noteworthy change to the main event loop. Previously,

we would call epoll, then process the timer events, then iterate through the

poll results. After this patch, the timer events are processed before the poll()

a _non-queued_ action can change the pollset conents (a users timed callback

function conversely could easily sit in a queue while the main thread continues

down into epoll)

* timer events can now have sockets associated with them, those sockets are

removed from the pollset when the timer event fires w/o a queue to the worker.

* timer events now have a canceled flag that can be toggled without locking

the timer list.

* Drop the severity of some wstunnel messages from DEBUG to TRACE1

* Lift the restriction on using asynchronous websockets connections but having

an idle timeout

Show less