20 Aug 05:35
Bug in 1.35/1.36 thread absolute timed waits
From: Ross Wightman <rwightman <at> gmail.com>
Subject: Bug in 1.35/1.36 thread absolute timed waits
Newsgroups: gmane.comp.lib.boost.user
Date: 2008-08-20 03:37:06 GMT
Subject: Bug in 1.35/1.36 thread absolute timed waits
Newsgroups: gmane.comp.lib.boost.user
Date: 2008-08-20 03:37:06 GMT
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).
RSS Feed