Re: [Boost-bugs] [Boost C++ Libraries] #11562: (condition_variable_any::wait_until + recursive_mutex + steady_clock) timer expires after computer time is set forward on Ubuntu 64-bit

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11562: (condition_variable_any::wait_until + recursive_mutex + steady_clock) timer expires after computer time is set forward on Ubuntu 64-bit
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-03-16 10:36:32


#11562: (condition_variable_any::wait_until + recursive_mutex + steady_clock) timer
expires after computer time is set forward on Ubuntu 64-bit
---------------------------+----------------------------------------
  Reporter: boriss@… | Owner: viboes
      Type: Bugs | Status: reopened
 Milestone: Boost 1.61.0 | Component: thread
   Version: Boost 1.59.0 | Severity: Showstopper
Resolution: | Keywords: steady_clock, Linux 64-bit
---------------------------+----------------------------------------
Changes (by boriss@…):

 * status: closed => reopened
 * resolution: fixed =>

Comment:

 With Boost 1.60 + above mentioned patch we get compile error durring
 compilaton of our application:


 {{{
 /usr/local/include/boost/thread/pthread/condition_variable.hpp: In
 destructor
 â€˜boost::thread_cv_detail::lock_on_exit<MutexType>::~lock_on_exit() [with
 MutexType = int]’:
 /usr/local/include/boost/thread/pthread/condition_variable.hpp:400:57:
 instantiated from ‘bool
 boost::condition_variable_any::do_wait_until(lock_type&, const timespec&)
 [with lock_type = int]’
 /usr/local/include/boost/thread/pthread/condition_variable.hpp:346:37:
 instantiated from here
 /usr/local/include/boost/thread/pthread/condition_variable.hpp:52:21:
 error: request for member ‘lock’ in
 â€˜*((boost::thread_cv_detail::lock_on_exit<int>*)this)->boost::thread_cv_detail::lock_on_exit<int>::m’,
 which is of non-class type ‘int’
 /usr/local/include/boost/thread/pthread/condition_variable.hpp: In member
 function ‘void
 boost::thread_cv_detail::lock_on_exit<MutexType>::activate(MutexType&)
 [with MutexType = int]’:
 /usr/local/include/boost/thread/pthread/condition_variable.hpp:406:15:
 instantiated from ‘bool
 boost::condition_variable_any::do_wait_until(lock_type&, const timespec&)
 [with lock_type = int]’
 /usr/local/include/boost/thread/pthread/condition_variable.hpp:346:37:
 instantiated from here
 /usr/local/include/boost/thread/pthread/condition_variable.hpp:45:17:
 error: request for member ‘unlock’ in ‘m_’, which is of non-class type
 â€˜int’
 }}}

 We see also that you changed only condition_variable.hpp

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11562#comment:55>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:19 UTC