Problem with Socket under Linux...
John M McIntosh
johnmci at mac.com
Wed Apr 24 21:55:08 UTC 2002
>> (Andreas, you must be in Germany right? Normally the list is
>> pretty dead when I am awake... :-))
>You're right ;-)
>> > > Then... you do not in fact signal the semaphore when there is
>> > > no data - right? (I don't really know what your last line before
>> > > "return 0" does, is that the "arming" stuff? Hey, btw, the Unix
>> > > version returns -1 if the socket is not valid, not 0...)
>> > Which is right. It means that the socket is broke, thus returning an
>> > error code (-1) instead of telling the client that there's simply no
>> > data available is the right thing to do.
>Bad ... I just looked at the plugin side of it and it turns out that the
>code for receiveDataAvailable _cannot_ return an error code. The return
>code is converted into a boolean and any non-zero return value will be
>interpreted as "true". There ya go. Gotta check my own code now.
> - Andreas
Beware of returning -1 from these calls. I think some older code once
returned -1 as the result of wanting to see how much data was
available. The Smalltalk code then said, oh, not zero, lets allocate
a new bytearray of -1 in length...
It's fuzzy to remember which call that was, but at the time it caused
of course a new primitive failure walkback.
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
More information about the Squeak-dev