diff options
author | vasiljevic <zv@archiware.com> | 2005-05-31 11:37:46 (GMT) |
---|---|---|
committer | vasiljevic <zv@archiware.com> | 2005-05-31 11:37:46 (GMT) |
commit | cc4c22c09b48294e5c20633376829d0f298eb20c (patch) | |
tree | 6116b73ac37a7b545ad590ba18b36d54ed5c4d78 /unix | |
parent | f56803c5b276118ed170be0eb13b83d2804df55a (diff) | |
download | tcl-cc4c22c09b48294e5c20633376829d0f298eb20c.zip tcl-cc4c22c09b48294e5c20633376829d0f298eb20c.tar.gz tcl-cc4c22c09b48294e5c20633376829d0f298eb20c.tar.bz2 |
The notifier thread is now created as joinable and properly joined in
the Tcl_FinalizeNotifier.
Diffstat (limited to 'unix')
-rw-r--r-- | unix/tclUnixNotfy.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c index c80e566..bd4f68f 100644 --- a/unix/tclUnixNotfy.c +++ b/unix/tclUnixNotfy.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclUnixNotfy.c,v 1.24 2005/05/14 20:46:48 das Exp $ + * RCS: @(#) $Id: tclUnixNotfy.c,v 1.25 2005/05/31 11:37:46 vasiljevic Exp $ */ #ifndef HAVE_COREFOUNDATION /* Darwin/Mac OS X CoreFoundation notifier @@ -220,7 +220,7 @@ Tcl_InitNotifier() Tcl_MutexLock(¬ifierMutex); if (notifierCount == 0) { if (TclpThreadCreate(¬ifierThread, NotifierThreadProc, NULL, - TCL_THREAD_STACK_DEFAULT, TCL_THREAD_NOFLAGS) != TCL_OK) { + TCL_THREAD_STACK_DEFAULT, TCL_THREAD_JOINABLE) != TCL_OK) { Tcl_Panic("Tcl_InitNotifier: unable to start notifier thread"); } } @@ -273,6 +273,7 @@ Tcl_FinalizeNotifier(clientData) */ if (notifierCount == 0) { + int result; if (triggerPipe < 0) { Tcl_Panic("Tcl_FinalizeNotifier: notifier pipe not initialized"); } @@ -291,6 +292,10 @@ Tcl_FinalizeNotifier(clientData) close(triggerPipe); Tcl_ConditionWait(¬ifierCV, ¬ifierMutex, NULL); + result = Tcl_JoinThread(notifierThread); + if (result) { + Tcl_Panic("Tcl_FinalizeNotifier: unable to join notifier thread"); + } } /* |