$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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