On Sun, Mar 18, 2012 at 05:56:02PM -0700, Julian Elischer wrote:
> On 3/18/12 11:50 AM, Pawel Jakub Dawidek wrote:
> > On Mon, Feb 27, 2012 at 01:38:52PM +0000, David Xu wrote:
> >> Author: davidxu
> >> Date: Mon Feb 27 13:38:52 2012
> >> New Revision: 232209
> >> URL: http://svn.freebsd.org/changeset/base/232209
> >>
> >> Log:
> >>    Follow changes made in revision 232144, pass absolute timeout to kernel,
> >>    this eliminates a clock_gettime() syscall.
> > This or some other change has broken CLOCK_MONOTONIC usage with
> > condition variables.
> >
> > You should be able to reproduce this by something like this:
> >
> >     pthread_cond_t cv;
> >     pthread_condattr_t attr;
> >     pthread_mutex_t lock;
> >     struct timespec ts;
> >          int error;
> >
> >     (void)pthread_mutex_init(&lock, NULL);
> >
> >     (void)pthread_condattr_init(&attr);
> >     (void)pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);
> >
> >     (void)pthread_cond_init(&cv,&attr);
> >     (void)pthread_condattr_destroy(&attr);
> >
> >     (void)clock_gettime(CLOCK_MONOTONIC,&ts);
> >     ts.tv_sec += 10;
> >     (void)pthread_mutex_lock(&lock);
> >     (void)pthread_cond_timedwait(&cv,&lock,&ts);
> >     (void)pthread_mutex_unlock(&lock);
> >
> > This should timeout after 10 seconds, but pthread_cond_timedwait(3)
> > returns immediately with ETIMEDOUT. CLOCK_REALTIME works properly.
> > Bascially pthread_condattr_setclock(&attr, CLOCK_MONOTONIC) is no-op.
> > If you change CLOCK_MONOTONIC to CLOCK_REALTIME in clock_gettime(2)
> > call, it will timeout after 10 seconds.
> 
> this has been broken for  a while for  me in fact fixing this was, I 
> thought,
> one of the reasons for this work..  glad I'm not the omnly person 
> seeing it though.
> 
> for me it broke sysutils/fio  from ports

For me it breaks sbin/hastd and openbsm/auditdistd, but my feeling is
that it is was broken recently. This stuff use to work not so long ago.

-- 
Pawel Jakub Dawidek                       http://www.wheelsystems.com
FreeBSD committer                         http://www.FreeBSD.org
Am I Evil? Yes, I Am!                     http://tupytaj.pl

Attachment: pgpOKwkORW0RY.pgp
Description: PGP signature

Reply via email to