Opened 11 years ago

Closed 10 years ago

#6130 closed Bugs (wontfix)

condition_variable::timed_wait wakes up too early

Reported by: Gennady Proskurin <gpr@…> Owned by: Anthony Williams
Milestone: To Be Determined Component: thread
Version: Boost 1.47.0 Severity: Problem
Keywords: Cc:

Description

condition_variable::timed_wait sometimes returns with timeout too early, 1 second before specified time. Test program attached.

Reliably reproduces on the following system: System: openSUSE 11.4, Linux 2.6.37.6-0.7-desktop #1 SMP PREEMPT 2011-07-21 02:17:24 +0200 i686 i686 i386 GNU/Linux

Attachments (2)

cvt.cc (571 bytes ) - added by Gennady Proskurin <gpr@…> 11 years ago.
cvt1.c (1.0 KB ) - added by Gennady Proskurin <gpr@…> 11 years ago.

Download all attachments as: .zip

Change History (9)

by Gennady Proskurin <gpr@…>, 11 years ago

Attachment: cvt.cc added

comment:1 by viboes, 11 years ago

Cc: viboes added

Unfortunately I'm unable to reproduce it. Please could you attach a trace when the problem occurs?

by Gennady Proskurin <gpr@…>, 11 years ago

Attachment: cvt1.c added

comment:2 by Gennady Proskurin <gpr@…>, 11 years ago

It seems that it is not a boost bug, the same C program (cvt1.c), which uses plain posix api (pthread_cond_timedwait) triggers the same assert. So, this seems to be a bug in OS, I will try to post it to openSUSE team.
I think, this bug can be closed.

comment:3 by Gennady Proskurin <gpr@…>, 11 years ago

comment:4 by viboes, 11 years ago

Cc: viboes removed
Resolution: wontfix
Status: newclosed

Please, let us know what is the result of this bugreport.

comment:5 by viboes, 10 years ago

Resolution: wontfixfixed

(In [78285]) Thread: try to fix ticket 6130 for linux systems

comment:6 by viboes, 10 years ago

Resolution: fixed
Status: closedreopened

comment:7 by viboes, 10 years ago

Resolution: wontfix
Status: reopenedclosed

The change in [78285] has been rolled back, as it was not a good solution. The library can not provide a fix to the OS bug.

Note: See TracTickets for help on using tickets.