Boost logo

Boost :

From: Hans Malherbe (hans.malherbe_at_[hidden])
Date: 2005-03-24 04:04:24


Don G skryf:

>That makes sense, and I have used that feature before. The hard part
>about putting this technique to use in a library is that it makes
>requirements on the behavior of main: it must be in an alertable
>wait. If I recall correctly, GetMessage/PeekMessage are not
>alertable.

I like the way the ACE library handles this. You have a choice of two
architectural patterns: Reactor and proactor.
Reactor makes your service "reactive" by serially demultiplexing
events synchronously (Proactor has mutliple threads ready to do work).
To start handling events you call "handle_events". You don't really
care if the call puts your thread in an alertable wait or not. That would
depend on whether the reactor uses the Select_Reactor or WFMO_Reactor
implementation.

These patterns nicely decouple event demuxing and dispatching from all
the other processing.
Hugo Duncan's Giallo project uses them also.

Groete
Hans


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk