summaryrefslogtreecommitdiff
path: root/mit-pthreads/stdio/README
diff options
context:
space:
mode:
Diffstat (limited to 'mit-pthreads/stdio/README')
-rwxr-xr-xmit-pthreads/stdio/README41
1 files changed, 41 insertions, 0 deletions
diff --git a/mit-pthreads/stdio/README b/mit-pthreads/stdio/README
new file mode 100755
index 00000000000..8e4c07909e9
--- /dev/null
+++ b/mit-pthreads/stdio/README
@@ -0,0 +1,41 @@
+Copyright (c) 1993, 1994 Chris Provenzano. All rights reserved.
+
+This is a threadsafe stdio based on the BSD stdio written by Chris Torek.
+This product includes software developed by the Univeristy of California,
+Berkeley and its contributors.
+
+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. The routine 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.
+
+
+
+Things to do.
+
+Fix printf so it uses the ininf function.