diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-06-05 19:31:57 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-06-05 19:31:57 +0000 |
commit | 4ad0bbf4fa2073b8b2cb81866f68ff3e8c503174 (patch) | |
tree | 3b1ca4ddea994a1978a4c1b1a791f8458cce706d /nptl/sysdeps/unix/sysv/linux/i386 | |
parent | b558fd3ab7b8d9d98b7babc51da7de109f69a77e (diff) | |
download | glibc-4ad0bbf4fa2073b8b2cb81866f68ff3e8c503174.tar glibc-4ad0bbf4fa2073b8b2cb81866f68ff3e8c503174.tar.gz glibc-4ad0bbf4fa2073b8b2cb81866f68ff3e8c503174.tar.bz2 glibc-4ad0bbf4fa2073b8b2cb81866f68ff3e8c503174.zip |
Update.
2003-06-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
Change type of __writer element to int.
* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
* sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
* sysdeps/x86_64/tcb-offsets.sym: Likewise.
* pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
Compare with TID to determine deadlocks.
* sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
* Makefile (tests): Add tst-rwlock12.
* tst-rwlock12.c: New file.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386')
5 files changed, 7 insertions, 7 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h index 4b0f11adc5..256589da0d 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h +++ b/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h @@ -115,7 +115,7 @@ typedef union /* FLAGS must stay at this position in the structure to maintain binary compatibility. */ unsigned int __flags; - pthread_t __writer; + int __writer; } __data; char __size[__SIZEOF_PTHREAD_RWLOCK_T]; long int __align; diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S index 6c8dca55a2..81d9766056 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S @@ -124,7 +124,7 @@ __pthread_rwlock_rdlock: call __lll_mutex_lock_wait jmp 2b -14: cmpl %gs:SELF, %eax +14: cmpl %gs:TID, %eax jne 3b /* Deadlock detected. */ movl $EDEADLK, %ecx diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S index 3ebe2a55f8..7d9aa93ebb 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S @@ -165,7 +165,7 @@ pthread_rwlock_timedrdlock: call __lll_mutex_lock_wait jmp 2b -14: cmpl %gs:SELF, %eax +14: cmpl %gs:TID, %eax jne 3b movl $EDEADLK, %ecx jmp 9b diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S index 9614f24cb2..4a144453fa 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S @@ -135,7 +135,7 @@ pthread_rwlock_timedwrlock: 5: xorl %ecx, %ecx - movl %gs:SELF, %eax + movl %gs:TID, %eax movl %eax, WRITER(%ebp) 9: LOCK #if MUTEX == 0 @@ -163,7 +163,7 @@ pthread_rwlock_timedwrlock: call __lll_mutex_lock_wait jmp 2b -14: cmpl %gs:SELF, %eax +14: cmpl %gs:TID, %eax jne 3b 20: movl $EDEADLK, %ecx jmp 9b diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S index 0b1cc28986..28c24bad65 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S @@ -97,7 +97,7 @@ __pthread_rwlock_wrlock: jmp 2b 5: xorl %ecx, %ecx - movl %gs:SELF, %eax + movl %gs:TID, %eax movl %eax, WRITER(%ebx) 9: LOCK #if MUTEX == 0 @@ -122,7 +122,7 @@ __pthread_rwlock_wrlock: call __lll_mutex_lock_wait jmp 2b -14: cmpl %gs:SELF, %eax +14: cmpl %gs:TID , %eax jne 3b movl $EDEADLK, %ecx jmp 9b |