I've put the C proactor up for review on branch https://github.com/alanconway/qpid-proton/tree/aconway-c-proactor
The libuv implementation needs a lot more testing and profiling, but the proactor API is close to complete. Feedback appreciated! commit 51d291b88731877e168e08d6316eb10cbf8bbf0e Author: Alan Conway <[email protected]> Commit: Alan Conway <[email protected]> PROTON-1344: C proactor for multi-threaded proton applications proactor.h is an asynchronous, multi-threaded replacement for reactor.h It uses the same Proton engine APIs and events, but allows multiple application threads wait for events to handle, rather than calling back on handler functions from a single thread. The proactor ensures that events for the same AMQP connection are handled in sequence (although possibly by different threads at different times) so event handling code does not need to lock the use of thread-unsafe proton APIs. It provides a "wake" feature to signal connections for processing triggered by the application rather than proton IO. Examples show C sender, receiver and broker, and a libuv driver implementation. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
