Path: utzoo!attcan!uunet!samsung!zaphod.mps.ohio-state.edu!sdd.hp.com!elroy.jpl.nasa.gov!jpl-devvax!lwall From: lwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) Newsgroups: comp.lang.perl Subject: Re: Problem with select in patchlevel 37 (with fix) Message-ID: <10067@jpl-devvax.JPL.NASA.GOV> Date: 23 Oct 90 00:58:29 GMT References: <3896@tymix.UUCP> Reply-To: lwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) Organization: Jet Propulsion Laboratory, Pasadena, CA Lines: 33 In article <3896@tymix.UUCP> mooring@grimoire (Ed Mooring) writes: : 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. That's the correct patch for that, and it will be in patch38, but you should realize that recv, socket, socketpair, and setsockopt are broken the same way. I suppose I could blame it all on Chip, but I'll refrain... Larry