Tcl Source Code

Check-in [67c1a8899a]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

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

Overview
Comment:merge trunk
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | tip-429
Files: files | file ages | folders
SHA1: 67c1a8899a38317aca2b2a8842d733c28b8ff4e9
User & Date: ferrieux 2014-08-04 14:02:53
Context
2014-08-04
14:06
Hum. Really merge trunk. check-in: 5d9c445fc1 user: ferrieux tags: tip-429
14:02
merge trunk check-in: 67c1a8899a user: ferrieux tags: tip-429
2014-08-03
22:43
Tidy up the docs check-in: d560d1022a user: dkf tags: tip-429
2014-08-02
04:36
Another Preserve/Release on channels is needed during IO finalization. check-in: c286356bd3 user: dgp tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclIO.c.

622
623
624
625
626
627
628

629
630
631
632
633
634
635
...
680
681
682
683
684
685
686

687
688
689
690
691
692
693
	/*
	 * We've found a live (or bg-closing) channel. Close it.
	 */

	if (active) {


	    /*
	     * TIP #398:  by default, we no  longer set the  channel back into
             * blocking  mode.  To  restore  the old  blocking  behavior,  the
             * environment variable  TCL_FLUSH_NONBLOCKING_ON_EXIT must be set
             * and not be "0".
	     */
            if (doflushnb) {
................................................................................
		 * mark the channel with CHANNEL_DEAD to prevent any further
		 * IO operations on it.
		 */

		chanPtr->instanceData = NULL;
		SetFlag(statePtr, CHANNEL_DEAD);
	    }

	}
    }

    TclpFinalizeSockets();
    TclpFinalizePipes();
}
 






>







 







>







622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
...
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
	/*
	 * We've found a live (or bg-closing) channel. Close it.
	 */

	if (active) {

	    TclChannelPreserve((Tcl_Channel)chanPtr);
	    /*
	     * TIP #398:  by default, we no  longer set the  channel back into
             * blocking  mode.  To  restore  the old  blocking  behavior,  the
             * environment variable  TCL_FLUSH_NONBLOCKING_ON_EXIT must be set
             * and not be "0".
	     */
            if (doflushnb) {
................................................................................
		 * mark the channel with CHANNEL_DEAD to prevent any further
		 * IO operations on it.
		 */

		chanPtr->instanceData = NULL;
		SetFlag(statePtr, CHANNEL_DEAD);
	    }
	    TclChannelRelease((Tcl_Channel)chanPtr);
	}
    }

    TclpFinalizeSockets();
    TclpFinalizePipes();
}