diff options
Diffstat (limited to 'lib/libpthread/stdio/README')
| -rw-r--r-- | lib/libpthread/stdio/README | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/lib/libpthread/stdio/README b/lib/libpthread/stdio/README new file mode 100644 index 000000000000..d8d7dd779f63 --- /dev/null +++ b/lib/libpthread/stdio/README @@ -0,0 +1,37 @@ +This is a threadsafe stdio based on the BSD stdio written by Chris Torek. + +INCLUDE FILES AND PORTING +To continue to make this package portable, some basic rules on includes +files must be followed. + +pthread.h should be included first (if it is to be included). +stdio.h should be included. + +INTERNAL LOCKING +1.	All functions that can be called by the user must have __flockfile at the +	begining and a __funlockfile at the end. __Flockfile is a counting mutex, +	The thread that owns the lock can call __flockfile as many times as +	it wants, but must call an equal number of __funlockfile before the +	lock will be released. +2.	All functions starting with __ shouldn't need addtional locking. +3.	Anything that writes the variable __sglue should lock __sfp_mutex, + 	check __sfp_state, and do a condion wait if it is set. +4.	Anything that checks fp->_flag for valididity should also lock +	__sfp_mutex. +5.	Anything that reads the variable __sglue should lock __sfp_mutex, increment +	__sfp_state, and then unlock the mutex. At function return it should +	lock the mutex again decrement __sfp_state and check if zero. If so +	do a cond_signal, and unlock the mutex. +6.	The functions fopen, fdopen, and freopen are the only functions that +	will change a fp->_file +7.	fdopen and fopen both allocate the next fp by locking __sfp_mutex +	checking fp->_flags and then setting it if free. +8.	freopen tries to preserve fp->_file. It sets __sfp_mutex, then it +	tries to lock fp->_file and close it. +9.	__sinit is done with a pthread_once routine. + +Copyright (c) 1993 Chris Provenzano. All rights reserved. + +This product includes software developed by the Univeristy of California, +Berkeley and its contributors. + | 
