10 #include <boost/bind/bind.hpp>
23 #if BOOST_VERSION < 105000
24 static boost::system_time toPosixTime(
const boost::chrono::system_clock::time_point& t)
26 return boost::posix_time::from_time_t(boost::chrono::system_clock::to_time_t(t));
49 #if BOOST_VERSION < 105000
58 boost::chrono::system_clock::time_point timeToWaitFor =
taskQueue.begin()->first;
59 if (
newTaskScheduled.wait_until<>(lock, timeToWaitFor) == boost::cv_status::timeout)
109 schedule(f, boost::chrono::system_clock::now() + boost::chrono::seconds(deltaSeconds));
115 s->
scheduleFromNow(boost::bind(&Repeat, s, f, deltaSeconds), deltaSeconds);
120 scheduleFromNow(boost::bind(&Repeat,
this, f, deltaSeconds), deltaSeconds);
124 boost::chrono::system_clock::time_point &last)
const
void schedule(Function f, boost::chrono::system_clock::time_point t)
std::multimap< boost::chrono::system_clock::time_point, Function > taskQueue
void stop(bool drain=false)
boost::mutex newTaskMutex
size_t getQueueInfo(boost::chrono::system_clock::time_point &first, boost::chrono::system_clock::time_point &last) const
boost::condition_variable newTaskScheduled
int nThreadsServicingQueue
void scheduleFromNow(Function f, int64_t deltaSeconds)
void scheduleEvery(Function f, int64_t deltaSeconds)
boost::function< void(void)> Function
An RAII-style reverse lock.