diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-09-28 19:56:49 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-09-28 19:56:49 (GMT) |
commit | 6dbdbb7d1b03f728a622baf0319bda9f720b9445 (patch) | |
tree | 6696e5e77bb4ee129a546967520193a056de4eb8 /doc/Thread.3 | |
parent | 37b9b4dedcc82238e69c508b7631f2a28952baea (diff) | |
parent | d2edfcf2bd90298d02756daff2a473a3eebcd2ee (diff) | |
download | tcl-6dbdbb7d1b03f728a622baf0319bda9f720b9445.zip tcl-6dbdbb7d1b03f728a622baf0319bda9f720b9445.tar.gz tcl-6dbdbb7d1b03f728a622baf0319bda9f720b9445.tar.bz2 |
Merge trunk
Diffstat (limited to 'doc/Thread.3')
-rw-r--r-- | doc/Thread.3 | 12 |
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. |