Ross Wightman | 20 Aug 05:35

Bug in 1.35/1.36 thread absolute timed waits

There is an integer arithmetic bug in get_due_time() used by
conditional variables in the boost 1.35/1.36 threading library. On
line 343 in thread/src/win32/thread.cpp, integer division is performed
before multiplication leaving the possibility of an erroneous 0 result
in the case where ticks_per_second is larger than
hundred_nanoseconds_in_one_second. Moving the brackets around the
multiply or removing them altogether will fix this problem.

I think this may only show itself if boost::date_time is setup so that
BOOST_DATE_TIME_HAS_NANOSECONDS is true (the way I need it).

Gmane