summaryrefslogtreecommitdiff
path: root/implement.h
diff options
context:
space:
mode:
authorrpj <rpj>2005-05-08 16:52:50 +0000
committerrpj <rpj>2005-05-08 16:52:50 +0000
commit7395b1431d5e2160682de273b46252c747ccbf36 (patch)
treebcff10e33282212ae087bb5074bc6025fc1313a3 /implement.h
parent78f83cfa240ec14874b22c7302ff8d306c130aaf (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 d4cbbe5..eeb7c88 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;
};
@@ -378,8 +379,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
@@ -601,8 +604,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);