"In an object-oriented system, when an object receives a message, it can fire off a set of events. Mostly, these events are handled in a synchronous manner: the calling process or thread sending the object a message receives and handles events before the send-message call is completed. However, the situation changes slightly if the object shooting off the events is shared by more than one process and resides in shared memory.
"This article describes this scenario in detail using two C++ design patterns and demonstrates the solution with sample code..."