From: <no...@so...> - 2001-03-31 18:47:34
|
Bugs item #219061, was updated on 2000-10-25 18:10 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=219061&group_id=10894 >Category: Channel Types Group: 8.3 Status: Closed Priority: 2 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: socket -async channel is non-blocking Initial Comment: 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 ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=219061&group_id=10894 |