This is the mail archive of the
libc-hacker@sourceware.cygnus.com
mailing list for the glibc project.
Re: IO deadlock
- To: Thorsten Kukuk <kukuk@weber-eb.uni-paderborn.de>
- Subject: Re: IO deadlock
- From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
- Date: 24 Jul 1998 10:37:15 +0200
- Cc: libc-hacker@cygnus.com
- References: <199807210852.KAA00599@lechuck.uni-paderborn.de>
Thorsten Kukuk <kukuk@weber-eb.uni-paderborn.de> writes:
|> I have a big problem with the current glibc snapshot, there is a
|> deadlock in the IO code.
Below is a patch.
Andreas.
----------------------------------------------------------------------
1998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/pthread/bits/libc-lock.h: Make
__pthread_mutexattr_settype weak. Don't make
__pthread_mutexattr_setkind_np weak.
--- libc-2.0.94/linuxthreads/sysdeps/pthread/bits/libc-lock.h.~1~ Wed Jul 15 21:12:27 1998
+++ libc-2.0.94/linuxthreads/sysdeps/pthread/bits/libc-lock.h Wed Jul 22 23:58:58 1998
@@ -176,7 +176,7 @@
weak_extern (__pthread_mutex_unlock)
weak_extern (__pthread_mutexattr_init)
weak_extern (__pthread_mutexattr_destroy)
-weak_extern (__pthread_mutexattr_setkind_np)
+weak_extern (__pthread_mutexattr_settype)
weak_extern (__pthread_key_create)
weak_extern (__pthread_setspecific)
weak_extern (__pthread_getspecific)
@@ -195,7 +195,7 @@
# pragma weak __pthread_mutex_unlock
# pragma weak __pthread_mutexattr_init
# pragma weak __pthread_mutexattr_destroy
-# pragma weak __pthread_mutexattr_setkind_np
+# pragma weak __pthread_mutexattr_settype
# pragma weak __pthread_key_create
# pragma weak __pthread_setspecific
# pragma weak __pthread_getspecific
1998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* weaks.c: Define pthread_mutexattr_[sg]ettype instead of
__pthread_mutexattr_[sg]ettype. Add more weak aliases.
* Versions: Put __pthread_mutexattr_settype under version
GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and
__pthread_mutexattr_gettype.
--- libc-2.0.94/linuxthreads/Versions.~1~ Fri Jul 10 17:57:58 1998
+++ libc-2.0.94/linuxthreads/Versions Thu Jul 23 21:48:55 1998
@@ -70,7 +70,7 @@
__pthread_key_create; __pthread_mutex_destroy; __pthread_mutex_init;
__pthread_mutex_lock; __pthread_mutex_trylock; __pthread_mutex_unlock;
__pthread_mutexattr_destroy; __pthread_mutexattr_init;
- __pthread_mutexattr_setkind_np; __pthread_once; __pthread_setspecific;
+ __pthread_mutexattr_settype; __pthread_once; __pthread_setspecific;
# The error functions.
__errno_location; __h_errno_location;
@@ -92,7 +92,6 @@
pthread_getconcurrency; pthread_setconcurrency;
- __pthread_mutexattr_gettype; __pthread_mutexattr_settype;
pthread_mutexattr_gettype; pthread_mutexattr_settype;
}
}
--- libc-2.0.94/linuxthreads/weaks.c.~1~ Fri Jul 10 17:57:59 1998
+++ libc-2.0.94/linuxthreads/weaks.c Thu Jul 23 19:10:26 1998
@@ -46,24 +46,46 @@
weak_alias (__pthread_return_0, pthread_attr_getinheritsched)
weak_alias (__pthread_return_0, pthread_attr_setscope)
weak_alias (__pthread_return_0, pthread_attr_getscope)
+weak_alias (__pthread_return_0, pthread_attr_setstackaddr)
+weak_alias (__pthread_return_0, pthread_attr_getstackaddr)
+weak_alias (__pthread_return_0, pthread_attr_setstacksize)
+weak_alias (__pthread_return_0, pthread_attr_getstacksize)
weak_alias (__pthread_return_0, pthread_mutex_init)
weak_alias (__pthread_return_0, pthread_mutex_destroy)
weak_alias (__pthread_return_0, pthread_mutex_lock)
+weak_alias (__pthread_return_0, pthread_mutex_trylock)
weak_alias (__pthread_return_0, pthread_mutex_unlock)
-weak_alias (__pthread_return_0, __pthread_mutexattr_settype)
-weak_alias (__pthread_return_0, __pthread_mutexattr_gettype)
+weak_alias (__pthread_return_0, pthread_mutexattr_init)
+weak_alias (__pthread_return_0, pthread_mutexattr_destroy)
+weak_alias (__pthread_return_0, pthread_mutexattr_settype)
+weak_alias (__pthread_return_0, pthread_mutexattr_gettype)
weak_alias (__pthread_return_0, pthread_condattr_init)
weak_alias (__pthread_return_0, pthread_condattr_destroy)
weak_alias (__pthread_return_0, pthread_setschedparam)
weak_alias (__pthread_return_0, pthread_getschedparam)
weak_alias (__pthread_return_0, pthread_setcancelstate)
+weak_alias (__pthread_return_0, pthread_getcancelstate)
weak_alias (__pthread_return_0, pthread_setcanceltype)
+weak_alias (__pthread_return_0, pthread_setconcurrency)
+weak_alias (__pthread_return_0, pthread_getconcurrency)
weak_alias (__pthread_return_0, pthread_self)
weak_alias (__pthread_return_0, pthread_cond_init)
weak_alias (__pthread_return_0, pthread_cond_destroy)
weak_alias (__pthread_return_0, pthread_cond_wait)
+weak_alias (__pthread_return_0, pthread_cond_timedwait)
weak_alias (__pthread_return_0, pthread_cond_signal)
weak_alias (__pthread_return_0, pthread_cond_broadcast)
+weak_alias (__pthread_return_0, pthread_rwlock_init)
+weak_alias (__pthread_return_0, pthread_rwlock_destroy)
+weak_alias (__pthread_return_0, pthread_rwlock_rdlock)
+weak_alias (__pthread_return_0, pthread_rwlock_wrlock)
+weak_alias (__pthread_return_0, pthread_rwlock_tryrdlock)
+weak_alias (__pthread_return_0, pthread_rwlock_trywrlock)
+weak_alias (__pthread_return_0, pthread_rwlock_unlock)
+weak_alias (__pthread_return_0, pthread_rwlockattr_init)
+weak_alias (__pthread_return_0, pthread_rwlockattr_destroy)
+weak_alias (__pthread_return_0, pthread_rwlockattr_setpshared)
+weak_alias (__pthread_return_0, pthread_rwlockattr_getpshared)
/* Those are pthread functions which return 1 if successful. */
- References:
- IO deadlock
- From: Thorsten Kukuk <kukuk@weber-eb.uni-paderborn.de>