1 // Copyright (C) 2010 Vicente Botet
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #define BOOST_THREAD_VERSION 2
8 #include <boost/thread/thread_only.hpp>
9 #include <boost/date_time/posix_time/posix_time_io.hpp>
13 #if defined(BOOST_THREAD_PLATFORM_PTHREAD)
18 boost::condition_variable cv;
20 using namespace boost::posix_time;
21 using namespace boost::gregorian;
24 #if defined(BOOST_THREAD_PLATFORM_PTHREAD)
26 for (int i=0; i<3; ++i)
28 const time_t now_time = ::time(0);
29 const time_t wait_time = now_time+1;
31 assert(now_time < wait_time);
33 boost::unique_lock<boost::mutex> lk(mtx);
35 (void)cv.timed_wait(lk, from_time_t(wait_time));
37 std::cerr << "now_time =" << now_time << " \n";
38 std::cerr << "end_time =" << end_time << " \n";
39 std::cerr << "wait_time=" << wait_time << " \n";
40 std::cerr << "now_time =" << from_time_t(now_time) << " \n";
41 std::cerr << "end_time =" << from_time_t(end_time) << " \n";
42 std::cerr << "wait_time=" << from_time_t(wait_time) << " \n";
43 std::cerr << end_time - wait_time << " \n";
44 assert(end_time >= wait_time);