This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: IO deadlock


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. */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]