Boost logo

Boost :

Subject: Re: [boost] Boost 1.65.0 Release Candidate 3
From: Peppard (peppard+boost_at_[hidden])
Date: 2017-08-15 13:10:14


On 2017-08-14 23:35, Marshall Clow via Boost wrote:
> As always, the release managers would appreciate it if you download
> the candidate of your choice and give building it a try. Please report
> both success and failure, and anything else that is noteworthy.

boost/math_fwd.hpp is now working for me, thanks a lot!

However I maybe found another regression introduced after the 1.64
release, this time in Boost.Thread (with pthread implementation and
BOOST_HAS_NANOSLEEP). A minimal example:

#include <boost/thread/thread.hpp>

int main() {
        boost::this_thread::sleep(boost::posix_time::seconds(1));
}

This sleeps "forever", however a slightly more complicated program might
not. I bisected it to this commit:
https://github.com/boostorg/thread/commit/d4cff01c724f1355fef0990f3d6d678e52f61fd0

The problem seems to be the BOOST_THREAD_USEFIXES_TIMESPEC define, which
alters some internal behavior, effectively changing

> nanosleep({0, 999366710}, NULL)

into

> nanosleep({1501988898, 350057596}, [stuck for a very long time]

. If the sleep is called inside a boost::thread, hidden::sleep_until is
implemented via condition.do_wait_until instead of nanosleep, this
works. For me a slightly extended test code works as expected if
compiled in debug mode but is stuck in release mode. I'm testing under
Linux with GCC 7.1 and a Clang++ 5.0.0 snapshot.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk