aboutsummaryrefslogtreecommitdiff
path: root/lib/libpthread/stdio/README
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libpthread/stdio/README')
-rw-r--r--lib/libpthread/stdio/README37
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.
+