diff options
Diffstat (limited to 'libpthread/nptl/pthread_condattr_setclock.c')
-rw-r--r-- | libpthread/nptl/pthread_condattr_setclock.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libpthread/nptl/pthread_condattr_setclock.c b/libpthread/nptl/pthread_condattr_setclock.c index 32b60cfac..87597c8b5 100644 --- a/libpthread/nptl/pthread_condattr_setclock.c +++ b/libpthread/nptl/pthread_condattr_setclock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2003. @@ -62,11 +62,12 @@ pthread_condattr_setclock ( return EINVAL; /* Make sure the value fits in the bits we reserved. */ - assert (clock_id < (1 << COND_CLOCK_BITS)); + assert (clock_id < (1 << COND_NWAITERS_SHIFT)); int *valuep = &((struct pthread_condattr *) attr)->value; - *valuep = (*valuep & ~(1 << (COND_CLOCK_BITS + 1)) & ~1) | (clock_id << 1); + *valuep = ((*valuep & ~(((1 << COND_NWAITERS_SHIFT) - 1) << 1)) + | (clock_id << 1)); return 0; } |