Proactor is a software design pattern for event handling in which long running activities are running in an asynchronous part. A completion handler is called after the asynchronous part has terminated. The proactor pattern can be considered to be an asynchronous variant of the synchronous reactor pattern.
Interaction
Operation specific actors:
The Proactive Initiator starts the asynchronous operation via the Asynchronous Operation Processor and defines the Completion Handler Completion Handler is a call at the end of the operation from the Asynchronous Operation Processor Asynchronous Operation Standardized actors
The Asynchronous Operation Processor controls the whole asynchronous operation The Completion Dispatcher handles the call, depending on the execution environment.
Implementations Proactor and Boost.Asio (C++) Adaptive Communication Environment (C++) RJR (Ruby)
See also Reactor pattern (a pattern that also asynchronously queues events, but demultiplexes and dispatches them synchronously)
References
External links Proactor - An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events, Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, Thomas D. Jordan, 1997 (pdf 143 kB)

