summaryrefslogtreecommitdiffstats
path: root/doc/Thread.3
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2018-09-28 19:56:49 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2018-09-28 19:56:49 (GMT)
commit6dbdbb7d1b03f728a622baf0319bda9f720b9445 (patch)
tree6696e5e77bb4ee129a546967520193a056de4eb8 /doc/Thread.3
parent37b9b4dedcc82238e69c508b7631f2a28952baea (diff)
parentd2edfcf2bd90298d02756daff2a473a3eebcd2ee (diff)
downloadtcl-6dbdbb7d1b03f728a622baf0319bda9f720b9445.zip
tcl-6dbdbb7d1b03f728a622baf0319bda9f720b9445.tar.gz
tcl-6dbdbb7d1b03f728a622baf0319bda9f720b9445.tar.bz2
Merge trunk
Diffstat (limited to 'doc/Thread.3')
-rw-r--r--doc/Thread.312
1 files changed, 9 insertions, 3 deletions
diff --git a/doc/Thread.3 b/doc/Thread.3
index c6e4bd4..51df5bb 100644
--- a/doc/Thread.3
+++ b/doc/Thread.3
@@ -45,7 +45,9 @@ int
.AP Tcl_Condition *condPtr in
A condition variable, which must be associated with a mutex lock.
.AP Tcl_Mutex *mutexPtr in
-A mutex lock.
+.VS TIP509
+A recursive mutex lock.
+.VE TIP509
.AP "const Tcl_Time" *timePtr in
A time limit on the condition wait. NULL to wait forever.
Note that a polling value of 0 seconds does not make much sense.
@@ -140,8 +142,12 @@ of code by calling \fBTcl_MutexLock\fR and \fBTcl_MutexUnlock\fR.
If one thread holds a mutex, any other thread calling \fBTcl_MutexLock\fR will
block until \fBTcl_MutexUnlock\fR is called.
A mutex can be destroyed after its use by calling \fBTcl_MutexFinalize\fR.
-The result of locking a mutex twice from the same thread is undefined.
-On some platforms it will result in a deadlock.
+.VS TIP509
+Mutexes are reentrant: they can be locked several times from the same
+thread. However there must be exactly one call to
+\fBTcl_MutexUnlock\fR for each call to \fBTcl_MutexLock\fR in order
+for a thread to release a mutex completely.
+.VE TIP509
The \fBTcl_MutexLock\fR, \fBTcl_MutexUnlock\fR and \fBTcl_MutexFinalize\fR
procedures are defined as empty macros if not compiling with threads enabled.
For declaration of mutexes the \fBTCL_DECLARE_MUTEX\fR macro should be used.