diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2004-01-15 19:12:17 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2004-01-15 19:12:17 +0000 |
commit | 6a150987938abfef78f72d0bf4ed6b427b25e040 (patch) | |
tree | 949b48479d75f080146cb875ce6231395e6df4db /newlib/libc/stdio/freopen.c | |
parent | d4c437af3e23285bc9aa0ef19b1dcf02aee87a93 (diff) | |
download | newlib-6a150987938abfef78f72d0bf4ed6b427b25e040.zip newlib-6a150987938abfef78f72d0bf4ed6b427b25e040.tar.gz newlib-6a150987938abfef78f72d0bf4ed6b427b25e040.tar.bz2 |
2004-01-15 Thomas Pfaff <tpfaff@gmx.net>
* libc/stdio/fclose.c: Include sys/lock.h.
(fclose): Destroy lock when file is closed.
* libc/stdio/findfp.c (__sfp): Initialize file pointers _lock
member.
* libc/stdio/freopen.c: Include sys/lock.h.
(_freopen_r): Destroy lock when file is closed.
* libc/stdio/vfprintf.c (__sbprintf): Initialize file pointers
_lock member.
Diffstat (limited to 'newlib/libc/stdio/freopen.c')
-rw-r--r-- | newlib/libc/stdio/freopen.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/newlib/libc/stdio/freopen.c b/newlib/libc/stdio/freopen.c index 9010adc..6d54789 100644 --- a/newlib/libc/stdio/freopen.c +++ b/newlib/libc/stdio/freopen.c @@ -71,6 +71,7 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, #include <fcntl.h> #include <stdlib.h> #include "local.h" +#include <sys/lock.h> /* * Re-direct an existing, open (probably) file to some other file. @@ -150,6 +151,9 @@ _DEFUN (_freopen_r, (ptr, file, mode, fp), fp->_flags = 0; /* set it free */ ptr->_errno = e; /* restore in case _close clobbered */ _funlockfile(fp); +#ifndef __SINGLE_THREAD__ + __lock_close_recursive (*(_LOCK_RECURSIVE_T *)&fp->_lock); +#endif return NULL; } |