aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/lockfile.c11
2 files changed, 15 insertions, 3 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index e55344b..57bb848 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,10 @@
+2000-09-01 Ulrich Drepper <drepper@redhat.com>
+
+ * lockfile.c (__flockfile): If _IO_USER_LOCK bit is set don't do
+ anything.
+ (__funlockfile): Likewise.
+ (__ftrylockfile): If _IO_USER_LOCK bit is set return always 0.
+
2000-08-30 Ulrich Drepper <drepper@redhat.com>
* manager.c (pthread_allocate_stack): Clear descriptor only if not
diff --git a/linuxthreads/lockfile.c b/linuxthreads/lockfile.c
index 0ef02f8..a7836b8 100644
--- a/linuxthreads/lockfile.c
+++ b/linuxthreads/lockfile.c
@@ -29,7 +29,8 @@ void
__flockfile (FILE *stream)
{
#ifdef USE_IN_LIBIO
- __pthread_mutex_lock (stream->_lock);
+ if ((stream->_flags & _IO_USER_LOCK) == 0)
+ __pthread_mutex_lock (stream->_lock);
#else
#endif
}
@@ -44,7 +45,8 @@ void
__funlockfile (FILE *stream)
{
#ifdef USE_IN_LIBIO
- __pthread_mutex_unlock (stream->_lock);
+ if ((stream->_flags & _IO_USER_LOCK) == 0)
+ __pthread_mutex_unlock (stream->_lock);
#else
#endif
}
@@ -59,7 +61,10 @@ int
__ftrylockfile (FILE *stream)
{
#ifdef USE_IN_LIBIO
- return __pthread_mutex_trylock (stream->_lock);
+ if ((stream->_flags & _IO_USER_LOCK) == 0)
+ return __pthread_mutex_trylock (stream->_lock);
+ else
+ return 0;
#else
#endif
}