From 29ac6bd228d1c75dc4c19105fa149861bff04720 Mon Sep 17 00:00:00 2001 From: Daniel Eischen Date: Sun, 11 Feb 2001 22:06:43 +0000 Subject: libc MT-safety, part 2. Add a lock to FILE. flockfile and friends are now implemented (for the most part) in libc. flockfile_debug is implemented in libc_r; I suppose it's about time to kill it but will do it in a future commit. Fix a potential deadlock in _fwalk in a threaded environment. A file flag (__SIGN) was added to stdio.h that, when set, tells _fwalk to ignore it in its walk. This seemed to be needed in refill.c because each file needs to be locked when flushing. Add a stub for pthread_self in libc. This is needed by flockfile which is allowed by POSIX to be recursive. Make fgetpos() error return value (-1) match man page. Remove recursive calls to locked functions (stdio); I think I've got them all, but I may have missed a couple. A few K&R -> ANSI conversions along with removal of a few instances of "register". $Id$ -> $FreeBSD$ in libc/stdio/rget.c Not objected to: -arch, a few months ago --- lib/libc/stdio/fclose.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'lib/libc/stdio/fclose.c') diff --git a/lib/libc/stdio/fclose.c b/lib/libc/stdio/fclose.c index 0d6fd80cb92e..e70a2daa1b03 100644 --- a/lib/libc/stdio/fclose.c +++ b/lib/libc/stdio/fclose.c @@ -51,8 +51,7 @@ static const char rcsid[] = #include "local.h" int -fclose(fp) - FILE *fp; +fclose(FILE *fp) { int r; @@ -70,15 +69,9 @@ fclose(fp) FREEUB(fp); if (HASLB(fp)) FREELB(fp); - FUNLOCKFILE(fp); fp->_file = -1; fp->_r = fp->_w = 0; /* Mess up if reaccessed. */ -#if 0 - if (fp->_lock != NULL) { - _pthread_mutex_destroy((pthread_mutex_t *)&fp->_lock); - fp->_lock = NULL; - } -#endif fp->_flags = 0; /* Release this FILE for reuse. */ + FUNLOCKFILE(fp); return (r); } -- cgit v1.3