Menu

#1134 socket -async channel is non-blocking

obsolete: 8.3
closed-fixed
nobody
2
2001-03-31
2000-10-26
Anonymous
No

OriginalBugID: 4388 Bug
Version: 8.3
SubmitDate: '2000-03-16'
LastModified: '2000-04-18'
Severity: MED
Status: Released
Submitter: techsupp
ChangedBy: hobbs
OS: HP-UX
FixedDate: '2000-04-18'
FixedInVersion: 8.3.1
ClosedDate: '2000-10-25'

Name:

Ulrich Schöbel

Extensions:

BLT, Oratcl

ReproducibleScript:

Creation of a channel with socket -async makes a non-blocking channel, though it is reported

to be blocking.

I reported this behaviour a few days ago, but the report appears to be lost in outer space.

Presumably we had another knot in our net. Sorry, if it's reported twice.

Patch:

*** tclUnixChan.c.orig Thu Mar 16 21:51:20 2000

--- tclUnixChan.c Fri Mar 17 01:32:06 2000

***************

*** 2041,2046 ****

--- 2041,2064 ----

asyncConnect = 1;

status = 0;

}

+ } else {

+ /* Here we are if the connect succeeds. In case of an asynchronous

+ * connect we have to reset the channel to blocking mode.

+ * This appears to happen not very often, but e.g. on a

+ * HP 9000/800 under HP-UX B.11.00 we enter this stage.

+ */

+ if (async) {

+ #ifndef USE_FIONBIO

+ origState = fcntl(sock, F_GETFL);

+ curState = origState & ~(O_NONBLOCK);

+ status = fcntl(sock, F_SETFL, curState);

+ #endif

+

+ #ifdef USE_FIONBIO

+ curState = 0;

+ status = ioctl(sock, FIONBIO, &curState);

+ #endif

+ }

}

}

}

PatchFiles:

tclUnixChan.c

patched as noted for 8.3.1.
-- 04/18/2000 hobbs

Discussion

  • Brent B. Welch

    Brent B. Welch - 2000-10-26
    • priority: 5 --> 2
    • status: open --> closed-fixed
     
  • Don Porter

    Don Porter - 2001-03-31
    • labels: 104250 --> 27. Channel Types