The Austria C++ library has a "netcabletv" alpha threaded "network"
The Austria C++ "Net" interface provides the functionality that usually
surrounds the poll/select
The Austria C++ library uses the "Twin" interface. The responsibility
for queuing is up to the clients. There is a "thread pool" or
ActivityList object that provides most of the functionality for queing
Austria C++ has a generic threadpool system in such a way that a singe
object can register it's own thread pool with the main thread pool so
that in a single object, only one thread will ever be in it at any point
in time and the "dispatching" of events is generic - i.e. no switch
Asynchronous calls must never return a value.
You have to use the same condition variable. However, you're mixing
thread paradigms. If you're using a thread pool, why not simply enqueue
an action ?
Austria C++'s Net interface works the same with Linux epoll as well as
Windows completion ports (although I didn't implement those).
The Austria C++ network library is not production code yet, although it
does pass unit tests, it needs a few changes to the interface IMHO.