Tcl Source Code

Check-in [e1a0b7d0c8]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:* doc/Thread.3: Updated documentation of Tcl_MutexLock to indicate that the recursive locking behavior is undefined. On Windows, it does not block, on Unix it deadlocks. [Bug: 1275]
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | core-8-1-branch-old
Files: files | file ages | folders
SHA1: e1a0b7d0c881ec2bf190ba02239b618ca9aacc8a
User & Date: stanton 1999-03-25 19:43:34.000
Context
1999-03-25
19:46
* unix/Makefile.in (dist): Added tcl.decls and tclInt.decls to source distribution. [Bug: 1571] check-in: 539c0e1656 user: stanton tags: core-8-1-branch-old
19:43
* doc/Thread.3: Updated documentation of Tcl_MutexLock to indicate that the recursive locking behavi... check-in: e1a0b7d0c8 user: stanton tags: core-8-1-branch-old
17:20
defs: lint io.test: fix for bug 1580--"after 100" calls in test scripts were not waiting long ... check-in: 5c981db38c user: hershey tags: core-8-1-branch-old
Changes
Unified Diff Ignore Whitespace Patch
Changes to ChangeLog.






1
2
3
4
5
6
7






1999-03-24    <[email protected]>

	* tests/execute.test: 
	* generic/tclExecute.c (TclExecuteByteCode): Fixed expression code
	that incorrectly returned floating point values for integers if
	the internal rep happened to be a double.  Now we check to see if
	the object has a string rep that looks like an integer before
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
1999-03-25    <[email protected]>

	* doc/Thread.3: Updated documentation of Tcl_MutexLock to indicate
	that the recursive locking behavior is undefined.  On Windows, it
	does not block, on Unix it deadlocks. [Bug: 1275]

1999-03-24    <[email protected]>

	* tests/execute.test: 
	* generic/tclExecute.c (TclExecuteByteCode): Fixed expression code
	that incorrectly returned floating point values for integers if
	the internal rep happened to be a double.  Now we check to see if
	the object has a string rep that looks like an integer before
Changes to doc/Thread.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'\"
'\" Copyright (c) 1998 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" 
'\" RCS: @(#) $Id: Thread.3,v 1.1.2.2 1998/10/21 20:21:31 stanton Exp $
'\" 
.so man.macros
.TH Tcl_ConditionNotify 3 "" Tcl "Tcl Library Procedures"
.BS
.SH NAME
Tcl_ConditionNotify, Tcl_ConditionWait, Tcl_GetThreadData, Tcl_MutexLock, Tcl_MutexUnlock \- thread synchronization support.
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
.sp






|


|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'\"
'\" Copyright (c) 1998 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" 
'\" RCS: @(#) $Id: Thread.3,v 1.1.2.3 1999/03/25 19:43:34 stanton Exp $
'\" 
.so man.macros
.TH Tcl_ConditionNotify 3 "8.1" Tcl "Tcl Library Procedures"
.BS
.SH NAME
Tcl_ConditionNotify, Tcl_ConditionWait, Tcl_GetThreadData, Tcl_MutexLock, Tcl_MutexUnlock \- thread synchronization support.
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
.sp
49
50
51
52
53
54
55
56

57


58
59
60
61
62
63
64
.BE

.SH DESCRIPTION
.PP
A mutex is a lock that is used to serialize all threads through a piece
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 thread can deadlock

on itself if it tries to lock the mutex twice.


\fBTcl_MutexLock\fR and \fBTcl_MutexUnlock\fR
procedures are defined as empty macros if not compiling with threads enabled.
.PP
A condition variable is used as a signaling mechanism:
a thread can lock a mutex and then wait on a condition variable
with \fBTcl_ConditionWait\fR.  This atomically releases the mutex lock
and blocks the waiting thread until another thread calls







|
>
|
>
>







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
.BE

.SH DESCRIPTION
.PP
A mutex is a lock that is used to serialize all threads through a piece
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.
.VS
The result of locking a mutex twice from the same thread is undefined.
On some platforms it will result in a deadlock.
.VE
\fBTcl_MutexLock\fR and \fBTcl_MutexUnlock\fR
procedures are defined as empty macros if not compiling with threads enabled.
.PP
A condition variable is used as a signaling mechanism:
a thread can lock a mutex and then wait on a condition variable
with \fBTcl_ConditionWait\fR.  This atomically releases the mutex lock
and blocks the waiting thread until another thread calls