|The client, which in our
case is the Lister, passes a chunk of data to the Accumulator active object.
This method is executed by an external thread (Lister thread). The data, in
this case the _sources vector, must be protected by a critical section.
|Immediately after the event
is released, the Run method of Accumulator wakes up and starts processing
data, trying to access _sources. If the lock is still held by DataReady, it
will block and wait until DataReady returns and the destructor of lock exits
the critical section.