summaryrefslogtreecommitdiff
path: root/implement.h
diff options
context:
space:
mode:
authorrpj <rpj>2005-05-08 16:55:02 +0000
committerrpj <rpj>2005-05-08 16:55:02 +0000
commitac8e3d247fa03af61b5411f92508481e7c3f49f8 (patch)
treef5d9c2a8bc58a2e6135e8aa2b207daab23de14a7 /implement.h
parent7523c7c4d75652f67cd31cb123e1268790394c8b (diff)
''
Diffstat (limited to 'implement.h')
-rw-r--r--implement.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/implement.h b/implement.h
index 994a768..2e883a8 100644
--- a/implement.h
+++ b/implement.h
@@ -150,6 +150,7 @@ struct ptw32_thread_t_
#endif /* HAVE_SIGSET_T */
int implicit:1;
void *keys;
+ void *nextAssoc;
};
@@ -386,8 +387,10 @@ struct ThreadKeyAssoc
* key is concluded.
*
* To avoid deadlock: whenever both locks are required, the key
- * and thread locks are always applied in the order: key lock
- * then thread lock.
+ * and thread locks are always acquired in the order: key lock
+ * then thread lock. An exception to this exists when a thread
+ * calls the destructors, however this is done carefully to
+ * avoid deadlock.
*
* An association is created when a thread first calls
* pthread_setspecific() on a key that has a specified
@@ -610,8 +613,7 @@ extern "C"
void ptw32_callUserDestroyRoutines (pthread_t thread);
- int ptw32_tkAssocCreate (ThreadKeyAssoc ** assocP,
- ptw32_thread_t * thread, pthread_key_t key);
+ int ptw32_tkAssocCreate (ptw32_thread_t * thread, pthread_key_t key);
void ptw32_tkAssocDestroy (ThreadKeyAssoc * assoc);