Boost Users :
Subject: Re: [Boost-users] boost timer with sleep
From: Rush Manbert (rush_at_[hidden])
Date: 2008-11-12 13:25:43
On Nov 12, 2008, at 12:31 AM, Bruno Lalande wrote:
>>> There is another timer implementation that works with sleep?
>> In Boost? Not that I'm aware of.
> If I remember well, Beman Dawes plans to propose a new implementation
> of timer. Don't know if it's supposed to behave differently about that
> precise issue though.
I recently ran into this problem with timer and replaced it with an
implementation using the Date Time library.
My use case was to have a stale lock timeout on a lock object. The
lock object constructor takes a timeout value, expressed as
I use the timeout to create a time_duration object. Then, with the
current time and the duration, I construct a time_period object that
expresses the valid lifetime of the lock object. When I check for
timeout I just see if the current time is within the time period.
At object creation:
boost::posix_time::time_duration d (0,0,existenceTimeoutInMillisec,0);
// This defines the overall lifetime period for the lock
m_pOverallTimePeriod.reset (new boost::posix_time::time_period (now,
which records the creation time. Note that m_pOverallTimePeriod is
and I use a NULL pointer value to mean that there is no timeout.
My timeout check looks like this:
inline bool isTimedOut (void)
if ( m_pOverallTimePeriod)
return ( ! m_pOverallTimePeriod->contains (now));
The whole point of having the lock object is to coordinate a bunch of
competing threads, and this implementation works even though the
threads get suspended.
As always, YMMV.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net