diff options
author | mdejong <mdejong> | 2002-11-07 02:13:35 (GMT) |
---|---|---|
committer | mdejong <mdejong> | 2002-11-07 02:13:35 (GMT) |
commit | 3e430e0f904e6835386a38276d1e7db4abe08e01 (patch) | |
tree | f86db515375673b4202dbd6719d7bd881da96117 /win/tclWinChan.c | |
parent | c8da171d49ce9c4601c168ee22fb991d7a0da3b5 (diff) | |
download | tcl-3e430e0f904e6835386a38276d1e7db4abe08e01.zip tcl-3e430e0f904e6835386a38276d1e7db4abe08e01.tar.gz tcl-3e430e0f904e6835386a38276d1e7db4abe08e01.tar.bz2 |
* generic/tclEvent.c (TclInExit, TclInThreadExit):
Split out functionality of TclInExit to make it
clear which one should be called in each situation.
* generic/tclInt.decls: Declare TclInThreadExit.
* generic/tclIntDecls.h: Regen.
* generic/tclStubInit.c: Regen.
* mac/tclMacChan.c (StdIOClose):
* unix/tclUnixChan.c (FileCloseProc):
* win/tclWinChan.c (FileCloseProc):
* win/tclWinConsole.c (ConsoleCloseProc):
* win/tclWinPipe.c (TclpCloseFile):
* win/tclWinSerial.c (SerialCloseProc): Invoke the
new TclInThreadExit method instead of TclInExit.
Diffstat (limited to 'win/tclWinChan.c')
-rw-r--r-- | win/tclWinChan.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/win/tclWinChan.c b/win/tclWinChan.c index aa156bf..1a4c4ec 100644 --- a/win/tclWinChan.c +++ b/win/tclWinChan.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclWinChan.c,v 1.24 2002/07/08 10:08:58 vincentdarley Exp $ + * RCS: @(#) $Id: tclWinChan.c,v 1.25 2002/11/07 02:13:37 mdejong Exp $ */ #include "tclWinInt.h" @@ -397,11 +397,11 @@ FileCloseProc(instanceData, interp) /* * Don't close the Win32 handle if the handle is a standard channel - * during the exit process. Otherwise, one thread may kill the stdio - * of another. + * during the thread exit process. Otherwise, one thread may kill + * the stdio of another. */ - if (!TclInExit() + if (!TclInThreadExit() || ((GetStdHandle(STD_INPUT_HANDLE) != fileInfoPtr->handle) && (GetStdHandle(STD_OUTPUT_HANDLE) != fileInfoPtr->handle) && (GetStdHandle(STD_ERROR_HANDLE) != fileInfoPtr->handle))) { |