TIP #398 Version 1.3: Quickly Exit with Non-Blocking Blocked Channels

This is not necessarily the current version of this TIP.


TIP:398
Title:Quickly Exit with Non-Blocking Blocked Channels
Version:$Revision: 1.3 $
Author:Alexandre Ferrieux <alexandre dot ferrieux at gmail dot com>
State:Draft
Type:Project
Tcl-Version:8.6
Vote:Pending
Created:Friday, 24 February 2012
Keywords:close, exit, flush, blocking, nonblocking

Abstract

This TIP reverts an age-old documented behavior that is useless, and the ill effects of which cannot be circumvented: Tcl's insistence on flushing even non-blocking channels on exit.

Rationale

The close.n manpage says:

Channels are automatically closed when an interpreter is destroyed and when the process exits. Channels are switched to blocking mode, to ensure that all output is correctly flushed before the process exits.

So, assuming the application has been using nonblocking IO all the time to stay responsive even