d7b2b98bdd5443ffeaf696ae09ec326906a9bc48
[openafs.git] / src / libafsauthent / README
1 Copyright 2000, International Business Machines Corporation and others.
2 All Rights Reserved.
3
4 This software has been released under the terms of the IBM Public
5 License.  For details, see the LICENSE file in the top-level source
6 directory or online at http://www.openafs.org/dl/license10.html
7
8 This library is to be used by multithreaded programs that need to access
9 the kauth and auth library interfaces.  The primary method used to obtain
10 thread safety in these libraries is to lock/unlock a recursive global
11 mutex at the entry point of every public function in the library.
12
13 However, not all public functions are made thread safe since not all 
14 functions are needed by the NT admin work.  In particular, there are
15 many public functions that make up decendants of the functions
16 we wish to use that weren't modified, since these functions will be 
17 protected by the locking at a higher level function.
18
19 To prevent people from using non-thread safe functions, platform 
20 specific methods are used to limit the functions exported by the 
21 library (using def files under NT and mapfiles under Solaris).  For 
22 most non-exported functions, it should be trivial to make the 
23 transformation to thread safe by simply locking/ unlocking the 
24 global mutex at the beginning/end of the function.