diff --git a/nptl/ChangeLog b/nptl/ChangeLog index beb3212529..9e52682111 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2003-11-04 Ulrich Drepper + + * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of + lll_mutex_*lock macros to skip atomic operations on some archs. + 2003-11-03 Ulrich Drepper * sysdeps/pthread/tst-timer.c (main): Initialize diff --git a/nptl/sysdeps/pthread/bits/stdio-lock.h b/nptl/sysdeps/pthread/bits/stdio-lock.h index b084e91e40..cd64bc37e2 100644 --- a/nptl/sysdeps/pthread/bits/stdio-lock.h +++ b/nptl/sysdeps/pthread/bits/stdio-lock.h @@ -29,7 +29,7 @@ typedef struct { int lock; int cnt; void *owner; } _IO_lock_t; -#define _IO_lock_initializer { LLL_MUTEX_LOCK_INITIALIZER, 0, NULL } +#define _IO_lock_initializer { LLL_LOCK_INITIALIZER, 0, NULL } #define _IO_lock_init(_name) \ ((_name) = (_IO_lock_t) _IO_lock_initializer , 0) @@ -42,7 +42,7 @@ typedef struct { int lock; int cnt; void *owner; } _IO_lock_t; void *__self = THREAD_SELF; \ if ((_name).owner != __self) \ { \ - lll_mutex_lock ((_name).lock); \ + lll_lock ((_name).lock); \ (_name).owner = __self; \ } \ ++(_name).cnt; \ @@ -54,7 +54,7 @@ typedef struct { int lock; int cnt; void *owner; } _IO_lock_t; void *__self = THREAD_SELF; \ if ((_name).owner != __self) \ { \ - if (lll_mutex_trylock ((_name).lock) == 0) \ + if (lll_trylock ((_name).lock) == 0) \ { \ (_name).owner = __self; \ (_name).cnt = 1; \ @@ -72,7 +72,7 @@ typedef struct { int lock; int cnt; void *owner; } _IO_lock_t; if (--(_name).cnt == 0) \ { \ (_name).owner = NULL; \ - lll_mutex_unlock ((_name).lock); \ + lll_unlock ((_name).lock); \ } \ } while (0) diff --git a/nptl/sysdeps/pthread/tst-timer.c b/nptl/sysdeps/pthread/tst-timer.c index f2577b75cd..f19fe364ba 100644 --- a/nptl/sysdeps/pthread/tst-timer.c +++ b/nptl/sysdeps/pthread/tst-timer.c @@ -86,7 +86,7 @@ main (void) sigev2.sigev_notify_attributes = NULL; /* It is unnecessary to do the following but to set a good example we do it anyhow. */ - sigev2.sigev_value = 0; + sigev2.sigev_value.sival_ptr = NULL; setvbuf (stdout, 0, _IOLBF, 0);