mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 15:20:10 +00:00
* Versions (libpthread: GLIBC_2.2): Remove
pthread_barrierattr_getpshared, never really existed. (libpthread: GLIBC_2.0): Move __pthread_initialize to ... (libpthread: GLIBC_PRIVATE): ... here.
This commit is contained in:
parent
8a477363f4
commit
043ad426e7
@ -1,3 +1,10 @@
|
||||
2003-03-18 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* Versions (libpthread: GLIBC_2.2): Remove
|
||||
pthread_barrierattr_getpshared, never really existed.
|
||||
(libpthread: GLIBC_2.0): Move __pthread_initialize to ...
|
||||
(libpthread: GLIBC_PRIVATE): ... here.
|
||||
|
||||
2003-03-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
|
||||
|
@ -80,7 +80,7 @@ libpthread {
|
||||
sigwait;
|
||||
|
||||
# Protected names for functions used in other shared objects.
|
||||
__pthread_atfork; __pthread_initialize; __pthread_getspecific;
|
||||
__pthread_atfork; __pthread_getspecific;
|
||||
__pthread_key_create; __pthread_mutex_destroy; __pthread_mutex_init;
|
||||
__pthread_mutex_lock; __pthread_mutex_trylock; __pthread_mutex_unlock;
|
||||
__pthread_mutexattr_destroy; __pthread_mutexattr_init;
|
||||
@ -147,7 +147,7 @@ libpthread {
|
||||
pthread_getcpuclockid;
|
||||
pthread_barrier_destroy; pthread_barrier_init; pthread_barrier_wait;
|
||||
pthread_barrierattr_destroy; pthread_barrierattr_init;
|
||||
pthread_barrierattr_getpshared; pthread_barrierattr_setpshared;
|
||||
pthread_barrierattr_setpshared;
|
||||
pthread_mutex_timedlock;
|
||||
pthread_rwlock_timedrdlock; pthread_rwlock_timedwrlock;
|
||||
|
||||
@ -170,6 +170,7 @@ libpthread {
|
||||
}
|
||||
GLIBC_PRIVATE {
|
||||
# Internal libc interface to libpthread
|
||||
__pthread_initialize;
|
||||
__pthread_kill_other_threads_np;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,16 @@
|
||||
2003-03-18 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
|
||||
pthread_timedjoin_np to ...
|
||||
(libpthread: GLIBC_2.3.3): ... here.
|
||||
(libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
|
||||
|
||||
* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
|
||||
Avoid shadowing VAL variable.
|
||||
|
||||
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
|
||||
New macro.
|
||||
|
||||
2003-03-18 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* Makefile (tests): Add tst-cond11.
|
||||
|
@ -93,36 +93,38 @@ __pthread_cond_timedwait (cond, mutex, abstime)
|
||||
while (1)
|
||||
{
|
||||
struct timespec rt;
|
||||
{
|
||||
#ifdef __NR_clock_gettime
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
int val = INTERNAL_SYSCALL (clock_gettime, err, 2, cond->__data.__clock,
|
||||
&ts);
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
int val = INTERNAL_SYSCALL (clock_gettime, err, 2,
|
||||
cond->__data.__clock, &rt);
|
||||
# ifndef __ASSUME_POSIX_TIMERS
|
||||
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (val, err), 0))
|
||||
{
|
||||
struct timeval tv;
|
||||
(void) gettimeofday (&tv, NULL);
|
||||
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (val, err), 0))
|
||||
{
|
||||
struct timeval tv;
|
||||
(void) gettimeofday (&tv, NULL);
|
||||
|
||||
/* Convert the absolute timeout value to a relative timeout. */
|
||||
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
|
||||
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
|
||||
}
|
||||
else
|
||||
/* Convert the absolute timeout value to a relative timeout. */
|
||||
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
|
||||
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
/* Convert the absolute timeout value to a relative timeout. */
|
||||
rt.tv_sec = abstime->tv_sec - rt.tv_sec;
|
||||
rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
|
||||
}
|
||||
{
|
||||
/* Convert the absolute timeout value to a relative timeout. */
|
||||
rt.tv_sec = abstime->tv_sec - rt.tv_sec;
|
||||
rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
|
||||
}
|
||||
#else
|
||||
/* Get the current time. So far we support only one clock. */
|
||||
struct timeval tv;
|
||||
(void) gettimeofday (&tv, NULL);
|
||||
/* Get the current time. So far we support only one clock. */
|
||||
struct timeval tv;
|
||||
(void) gettimeofday (&tv, NULL);
|
||||
|
||||
/* Convert the absolute timeout value to a relative timeout. */
|
||||
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
|
||||
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
|
||||
/* Convert the absolute timeout value to a relative timeout. */
|
||||
rt.tv_sec = abstime->tv_sec - tv.tv_sec;
|
||||
rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
|
||||
#endif
|
||||
}
|
||||
if (rt.tv_nsec < 0)
|
||||
{
|
||||
rt.tv_nsec += 1000000000;
|
||||
|
@ -99,6 +99,18 @@
|
||||
__val; \
|
||||
})
|
||||
|
||||
/* Atomically store newval and return the old value. */
|
||||
#define __lll_test_and_set(futex, newval) \
|
||||
({ int __val; \
|
||||
__asm __volatile ("1: lwarx %0,0,%3\n" \
|
||||
" stwcx. %2,0,%3\n" \
|
||||
" bne- 1b" \
|
||||
: "=&r" (__val), "=m" (*futex) \
|
||||
: "r" (futex), "r" (newval), "1" (*futex) \
|
||||
: "cr0"); \
|
||||
__val; })
|
||||
|
||||
|
||||
extern void __lll_lock_wait (int *futex, int val) attribute_hidden;
|
||||
|
||||
#define lll_mutex_lock(lock) \
|
||||
|
Loading…
Reference in New Issue
Block a user