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.
			
			
This commit is contained in:
		| @@ -1,3 +1,14 @@ | ||||
| 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. | ||||
|  | ||||
| 2004-01-08  Joel Sherrill  <joel@oarcorp.com> | ||||
|  | ||||
|         * libc/ctype/iswctype.c, include/sys/reent.h, libc/stdlib/a64l.c: | ||||
|   | ||||
| @@ -50,6 +50,7 @@ Required OS subroutines: <<close>>, <<fstat>>, <<isatty>>, <<lseek>>, | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include "local.h" | ||||
| #include <sys/lock.h> | ||||
|  | ||||
| /* | ||||
|  * Close a file. | ||||
| @@ -84,5 +85,9 @@ _DEFUN (fclose, (fp), | ||||
|     FREELB (fp); | ||||
|   fp->_flags = 0;		/* release this FILE for reuse */ | ||||
|   _funlockfile(fp); | ||||
| #ifndef __SINGLE_THREAD__ | ||||
|   __lock_close_recursive (*(_LOCK_RECURSIVE_T *)&fp->_lock); | ||||
| #endif | ||||
|  | ||||
|   return (r); | ||||
| } | ||||
|   | ||||
| @@ -114,6 +114,10 @@ found: | ||||
|   fp->_ub._size = 0; | ||||
|   fp->_lb._base = NULL;		/* no line buffer */ | ||||
|   fp->_lb._size = 0; | ||||
| #ifndef __SINGLE_THREAD__ | ||||
|   memset (&fp->_lock, 0, sizeof(fp->_lock)); | ||||
| #endif | ||||
|  | ||||
|   return fp; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -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; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -252,6 +252,9 @@ __sbprintf(fp, fmt, ap) | ||||
| 	fake._bf._base = fake._p = buf; | ||||
| 	fake._bf._size = fake._w = sizeof(buf); | ||||
| 	fake._lbfsize = 0;	/* not actually used, but Just In Case */ | ||||
| #ifndef __SINGLE_THREAD__ | ||||
| 	memset (&fake._lock, 0, sizeof(fake._lock)); | ||||
| #endif | ||||
|  | ||||
| 	/* do the work, then copy any error status */ | ||||
| 	ret = VFPRINTF(&fake, fmt, ap); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user