| [/ |
| (C) Copyright 2007-8 Anthony Williams. |
| Distributed under the Boost Software License, Version 1.0. |
| (See accompanying file LICENSE_1_0.txt or copy at |
| http://www.boost.org/LICENSE_1_0.txt). |
| ] |
| |
| [section:time Date and Time Requirements] |
| |
| As of Boost 1.35.0, the __boost_thread__ library uses the [link date_time Boost.Date_Time] library for all operations that require a |
| time out. These include (but are not limited to): |
| |
| * __sleep__ |
| * __timed_join__ |
| * __cond_timed_wait__ |
| * __timed_lock_ref__ |
| |
| For the overloads that accept an absolute time parameter, an object of type [link thread.time.system_time `boost::system_time`] is |
| required. Typically, this will be obtained by adding a duration to the current time, obtained with a call to [link |
| thread.time.get_system_time `boost::get_system_time()`]. e.g. |
| |
| boost::system_time const timeout=boost::get_system_time() + boost::posix_time::milliseconds(500); |
| |
| extern bool done; |
| extern boost::mutex m; |
| extern boost::condition_variable cond; |
| |
| boost::unique_lock<boost::mutex> lk(m); |
| while(!done) |
| { |
| if(!cond.timed_wait(lk,timeout)) |
| { |
| throw "timed out"; |
| } |
| } |
| |
| For the overloads that accept a ['TimeDuration] parameter, an object of any type that meets the [link |
| date_time.posix_time.time_duration Boost.Date_Time Time Duration requirements] can be used, e.g. |
| |
| boost::this_thread::sleep(boost::posix_time::milliseconds(25)); |
| |
| boost::mutex m; |
| if(m.timed_lock(boost::posix_time::nanoseconds(100))) |
| { |
| // ... |
| } |
| |
| [section:system_time Typedef `system_time`] |
| |
| #include <boost/thread/thread_time.hpp> |
| |
| typedef boost::posix_time::ptime system_time; |
| |
| See the documentation for [link date_time.posix_time.ptime_class `boost::posix_time::ptime`] in the Boost.Date_Time library. |
| |
| [endsect] |
| |
| [section:get_system_time Non-member function `get_system_time()`] |
| |
| #include <boost/thread/thread_time.hpp> |
| |
| system_time get_system_time(); |
| |
| [variablelist |
| |
| [[Returns:] [The current time.]] |
| |
| [[Throws:] [Nothing.]] |
| |
| ] |
| |
| [endsect] |
| |
| |
| [endsect] |