3 Sep
2013
3 Sep
'13
10:05 a.m.
Diving into the code, I just realize the real source of the problem: struct BOOST_SYMBOL_VISIBLE timeout { win32::ticks_type start; uintmax_t milliseconds; // HERE bool relative; boost::system_time abs_time; static unsigned long const max_non_infinite_wait=0xfffffffe; timeout(uintmax_t milliseconds_): // HERE do_wait() takses a timeout which will use a unsined int as milliseconds, which will make any negative number very big. Assuming ceil() returns a negative number (I might have made a mistake in my precedent mail), then we get a very big timeout.... I'm not sure how to fix this other than adding checks into wait_until and wait_for....