From: Michael Glassford (glassfordm_at_[hidden])
Date: 2003-12-31 12:53:44
> Does anyone know if it is possible somehow to have a native
> Windows event variable signal a boost thread condition?
I believe the answer is that it's not possible (at least with the
current Boost.Thread library).
> I am trying to use the monitor pattern to make my port class
> thread safe. On entry to my read function I acquire the lock and
> then when it comes to wait for any data to receive I get
> in trouble. The condition should be awakened by the received
> data. Windows can do this by signaling an event variable, and
> one can wait on this via WaitForMultipleObjects.
> But I see no obvious way how this relates to my "condition" variable.
Because it doesn't, I should say.
> Should I simply unlock the mutex before entering WaitForMultipleObjects?
It's hard to say without knowing what exactly the mutex is protecting.
Perhaps you could post some sample code?
> There is no user accessible API for such an operation.
I'm not sure I understand this. You say you obtain the lock at the
beginning of the function; can't you simply use the lock object's
unlock() method? Or am I misunderstanding something. Again, sample code
> Is it ok to use locks on the heap in such a case?
> What is about race conditions in this case?
It's hard to comment on either of these without more details.
> Can anyone give me a hint of how to deal with other system-level
> blocking situations?
> Perhaps I am simply overlooking the obvious.
> Thank you,
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk