Boost logo

Boost :

From: Matt Hurd (matthurd_at_[hidden])
Date: 2006-11-30 20:33:37


>On 01/12/06, Yuval Ronen <ronen_yuval_at_[hidden]> wrote:
<snip>
> If there aren't any, then why
> wouldn't the CV interface be changed to do the while loop itself:
>
> template <typename Lock, typename Pred>
> void condition::wait(Lock &lock, Pred while_cond)
> {
> while (while_cond)
> {
> old_wait(lock);
> }
> }
>
> or something similar.
>
> Does that make sense?

Good sense. It is so:

>From http://www.boost.org/doc/html/condition.html

#2 template<typename ScopedLock, typename Pred>
  void wait(ScopedLock& lock, Pred pred);

Requires: ScopedLock meets the ScopedLock requirements and the return
from pred() is convertible to bool.
Effects: As if: while (!pred()) wait(lock)
Throws: lock_error if !lock.locked()

Regards,

Matt.


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