Tcl Source Code

View Ticket
Login
Ticket UUID: 1994512
Title: async socket logic cleanups
Type: Patch Version: None
Submitter: jenglish Created on: 2008-06-15 18:33:20
Subsystem: 01. Notifier Assigned To: jenglish
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2008-08-06 06:47:40
Resolution: Accepted Closed By: jenglish
    Closed on: 2008-08-05 23:47:40
Description:
Attached patch streamlines the async socket logic in unix/tclUnixChan.c.

Summary of changes:


+ Consolidate error reporting paths in CreateSocket()
+ Restore blocking mode immediately after connect();
+ File descriptor blocking mode is now consistent with [fconfigure ... -blocking] setting even while async connect is in progress
+ Fix incorrect comments in WaitForConnect() header.
User Comments: jenglish added on 2008-08-06 06:47:40:
Logged In: YES 
user_id=68433
Originator: YES

Patch committed to HEAD.

jenglish added on 2008-06-16 01:37:54:
Logged In: YES 
user_id=68433
Originator: YES

See also #1960647.

I have a more aggressive version of this patch that skips WaitForConnect() altogether (hence removing the need for TclUnixWaitForFile in the first place).  I've tested and verified that it works on Linux, but can't confirm whether the simpler approach is guaranteed to work everywhere.

In any event, TclUnixWaitForFile() is more complicated than it needs to be, and is subject to further simplifications.

jenglish added on 2008-06-16 01:33:21:

File Added - 281477: cleanup-async-connect.patch

Attachments: