diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-28 19:26:49 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-28 19:26:49 (GMT) |
| commit | ccb97d88ffefe602e7eb5a9610bd356d66bc2f20 (patch) | |
| tree | 417cc58c53b8773c08262c85128c46225c4d2ea0 /doc/Thread.3 | |
| parent | 3c4cc0a0013a0552c90518a995ae654571c18a5b (diff) | |
| parent | fd548863930daf0e1bc3d01286f542844b1cc69c (diff) | |
| download | tcl-ccb97d88ffefe602e7eb5a9610bd356d66bc2f20.zip tcl-ccb97d88ffefe602e7eb5a9610bd356d66bc2f20.tar.gz tcl-ccb97d88ffefe602e7eb5a9610bd356d66bc2f20.tar.bz2 | |
Merge 8.7
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 5966a71..2005c93 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. |
