Path: utzoo!attcan!uunet!crdgw1!uakari.primate.wisc.edu!sdd.hp.com!samsung!cs.utexas.edu!sun-barr!olivea!tymix!grimoire!mooring From: mooring@grimoire (Ed Mooring) Newsgroups: comp.lang.perl Subject: Problem with select in patchlevel 37 (with fix) Message-ID: <3896@tymix.UUCP> Date: 23 Oct 90 00:52:31 GMT Sender: usenet@tymix.UUCP Reply-To: mooring@grimoire (Ed Mooring) Organization: BT Tymnet Bit Bucket Brigade Lines: 28 The select() operator in perl3.0 pl3[67] is broken. The fourth argument (when it is used as the BSD select() function), is never evaluated, nor is it passed to the OS. I believe that a change to consarg.c uncovered an old bug in arg.h. The fix I came up with follows as a context diff: *** arg.h Mon Oct 22 17:34:19 1990 --- arg.h.old Mon Oct 22 17:33:51 1990 *************** *** 896,902 **** A(1,1,0), /* ACCEPT */ A(1,1,3), /* SEND */ A(1,1,3), /* RECV */ ! A5(1,1,1,1,0), /* SSELECT */ A(1,1,1), /* SOCKPAIR */ A(0,3,0), /* DBSUBR */ A(1,0,0), /* DEFINED */ --- 896,902 ---- A(1,1,0), /* ACCEPT */ A(1,1,3), /* SEND */ A(1,1,3), /* RECV */ ! A(1,1,1), /* SSELECT */ A(1,1,1), /* SOCKPAIR */ A(0,3,0), /* DBSUBR */ A(1,0,0), /* DEFINED */ *************** I've tested it a little, and it seems to work, but caveat implementor as usual. Ed Mooring (mooring@tymix.tymnet.com 408-922-7504)