diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-01-28 11:35:54 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-01-28 11:35:54 +0000 |
commit | 51e176c2c2cd6d62d7619efb4aab569ded5a2416 (patch) | |
tree | 42e5b2b963de3db945d42033a64b565c9cb534b6 /libio | |
parent | 8ce63ec09b21cee470731ee9253a9c2855cf836e (diff) | |
download | glibc-51e176c2c2cd6d62d7619efb4aab569ded5a2416.tar.gz |
Update.
* libio/genops.c (_IO_un_link, _IO_link_in): Don't use locking if
_IO_MTSAFE_IO is not defined.
Diffstat (limited to 'libio')
-rw-r--r-- | libio/genops.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libio/genops.c b/libio/genops.c index 85d42face4..f925b0d87b 100644 --- a/libio/genops.c +++ b/libio/genops.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -31,7 +31,9 @@ #endif #include <string.h> +#ifdef _IO_MTSAFE_IO static _IO_lock_t list_all_lock = _IO_lock_initializer; +#endif void _IO_un_link (fp) @@ -39,8 +41,10 @@ _IO_un_link (fp) { if (fp->_flags & _IO_LINKED) { +#ifdef _IO_MTSAFE_IO _IO_FILE **f; _IO_lock_lock (list_all_lock); +#endif for (f = &_IO_list_all; *f != NULL; f = &(*f)->_chain) { if (*f == fp) @@ -49,7 +53,9 @@ _IO_un_link (fp) break; } } +#ifdef _IO_MTSAFE_IO _IO_lock_unlock (list_all_lock); +#endif fp->_flags &= ~_IO_LINKED; } } @@ -61,10 +67,14 @@ _IO_link_in (fp) if ((fp->_flags & _IO_LINKED) == 0) { fp->_flags |= _IO_LINKED; +#ifdef _IO_MTSAFE_IO _IO_lock_lock (list_all_lock); +#endif fp->_chain = _IO_list_all; _IO_list_all = fp; +#ifdef _IO_MTSAFE_IO _IO_lock_unlock (list_all_lock); +#endif } } |