On 9 May 2010 17:32, Stéphane Ducasse <[email protected]> wrote: > > On May 9, 2010, at 2:20 PM, Geoffroy Couprie wrote: > >> Hello, >> >> I try to play with sockets in Pharo, and I encounter a strange error. >> Here is my code: >> |tempsock| >> Socket initialize. >> tempsock := Socket newTCP. >> tempsock listenOn: 12345 backlogSize: 4. >> >> [sock isNil] whileTrue:[sock:= tempsock waitForAcceptFor: 600]. >> sock sendCommand: 'Hello world!!'. >> sock ifNotNil: >> [[sock isConnected] whileTrue: >> [[sock waitForDataUntil:2000] ifTrue: >> [sock sendCommand:'Looping'. >> sock sendCommand: sock receiveData ]. >> ]]. >> sock closeAndDestroy. > > Now Geoffroy I think that Socket is not "optimal". > >> sock ifNotNil: >> [[sock isConnected] whileTrue: >> [[sock waitForDataUntil:2000] ifTrue: > seems like #waitForDataUntil: could answer not only false or true, but also a nil. Just do it like that:
(sock waitForDataUntil: 2000) == true ifTrue: [ > [sock sendCommand:'Looping'. sock sendCommand: sock receiveData ] ]. >> ]]. > > >> Once the connection is accepted, an exception is thrown in "sock >> waitForDataUntil:2000" by BlockCosure>>mustBeBooleanIn:context. From >> what I see, the signal "proceed for truth" is sent, and th debugger >> kicks in. >> >> How can I prevent the debugger from starting? >> >> Best regards, >> >> Geoffroy >> >> _______________________________________________ >> Pharo-users mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users > > > _______________________________________________ > Pharo-users mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-users mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
