Boost logo

Boost Users :

Subject: Re: [Boost-users] [Thread] thousands of spurious wakeups from timed_wait() per second
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2014-09-15 17:54:00


Le 15/09/14 22:27, Steven Clark a écrit :
> Vicente J. Botet Escriba <vicente.botet <at> wanadoo.fr> writes:
>> Thanks for the details. Could you check directly on windows?
>> [...]
>> Agreed. Could you check directly on windows?
> My windows development setup is broken at this time, and fixing it is not easy for me. (I have nearly 40 years of Unix-like experience but I'm a rank newbie at Windows development.) Besides, I need the code to work on both Linux and (eventually) Windows.
>
> On 14 Sep 2014 at 21:59, Vicente J. Botet Escriba wrote:
>> It seems that the problem is present in 1.55 (see
>> https://svn.boost.org/trac/boost/ticket/9856).
> Yes, that seems to be the same issue now that I understand the API correctly. The bug appears to be that timed_wait() incorrectly thinks it has timed out. Should I add anything to that bug ticket, such as mentioning the additional places where I've seen it or attaching my test program?
You are welcome to participate on the Trac system. Please, add whatever
information you consider is useful, examples, platform/compiler used,
..., analysis of the code, patched fxing the issues ;-)
>
> How do I make or propose some minor clarifications to the Boost::thread documentation to get into the next release?
You can create a ticket on the Trac system (preferably with a patch :)
>
>> Vicente J. Botet Escriba <vicente.botet <at> wanadoo.fr> writes:
>> Another possibility could be to use the chrono interface to see if the bug is around the date-time interface.
> Last week when I casually looked through Boost documentation, it was not at all clear to me that chrono is newer and should be preferred in new code.
Well , chrono related interface was added in version 1.50, which is not
so new.
> This morning I made the straightforward transformation of my test program to use chrono and it works correctly on Linux 3.13.0 with Boost 1.54.
Great.
> I've not yet back-ported wait_until() to Boost 1.48 or 1.46 to see if it works on my other platforms. My time might be better spent updating those platforms to use the latest Boost.
>
> I'll move forward with the workaround to use Boost::chrono. Thank you very much!
>
> Would it be a good idea for me to morph my test program into a unit test and add it to the Boost:thread test suite? If so, would someone like to point me in the right direction and answer questions?
Yes please. Any help in making the code more robust, adding tests that
show bugs, ... is really welcome.

Best,
Vicente


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net