diff options
author | Ken Raeburn <raeburn@mit.edu> | 2004-10-07 01:16:21 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2004-10-07 01:16:21 +0000 |
commit | 82cf554b528ff013cd5bf9a5d0eebdd0f1f168b9 (patch) | |
tree | e8c715708b50d45be1aabbdddb00d65602cb2bbe /doc/threads.txt | |
parent | 8500f37be5f958cc59e38bb2ad3369820670db1a (diff) | |
download | krb5-82cf554b528ff013cd5bf9a5d0eebdd0f1f168b9.tar.gz krb5-82cf554b528ff013cd5bf9a5d0eebdd0f1f168b9.tar.xz krb5-82cf554b528ff013cd5bf9a5d0eebdd0f1f168b9.zip |
* implementor.texinfo, thread-safe.txt, threads.txt: Various updates relating to
thread support.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16812 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'doc/threads.txt')
-rw-r--r-- | doc/threads.txt | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/doc/threads.txt b/doc/threads.txt index 200fefa7b8..1b655ea0ce 100644 --- a/doc/threads.txt +++ b/doc/threads.txt @@ -21,7 +21,7 @@ means, within the krb5 library.) // POSIX: partial initializer is PTHREAD_MUTEX_INITIALIZER, // finish does nothing // Windows: partial initializer is zero/empty, - // finish does the actual work + // finish does the actual work and runs at load time // debug: partial initializer sets one magic value, // finish verifies, sets a new magic value k5_mutex_t foo_mutex = K5_MUTEX_PARTIAL_INITIALIZER; @@ -46,6 +46,9 @@ means, within the krb5 library.) // int k5_mutex_lock(k5_mutex_t *); int k5_mutex_unlock(k5_mutex_t *); + // Optional (always defined, but need not do anything): + void k5_mutex_assert_locked(k5_mutex_t *); + void k5_mutex_assert_unlocked(k5_mutex_t *); k5_key_t key; @@ -54,4 +57,25 @@ means, within the krb5 library.) int k5_setspecific(k5_key_t, const void *); ... stuff to signal library termination ... + +On many platforms with weak reference support, we can declare certain +symbols to be weak, and test the addresses before calling them. The +references generally will be non-null if the application pulls in the +pthread support. Sometimes stubs are present in the C library for +some of these routines, and sometimes they're not functional; if so, +we need to figure out which ones, and check for the presence of some +*other* routines. + +AIX 4.3.3 doesn't support weak references. However, it looks like +calling dlsym(NULL) causes the pthread library to get loaded, so we're +going to just go ahead and link against it anyways. + + +For now, the basic model is: + + If weak references supported, use them. + Else, assume support is present. + + + See also notes in src/include/k5-thread.h. |