summaryrefslogtreecommitdiffstats
path: root/doc/threads.txt
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2004-10-07 01:16:21 +0000
committerKen Raeburn <raeburn@mit.edu>2004-10-07 01:16:21 +0000
commit82cf554b528ff013cd5bf9a5d0eebdd0f1f168b9 (patch)
treee8c715708b50d45be1aabbdddb00d65602cb2bbe /doc/threads.txt
parent8500f37be5f958cc59e38bb2ad3369820670db1a (diff)
downloadkrb5-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.txt26
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.