[ANN] Jabber 2.0b on SqueakMap
Julian Fitzell
julian at beta4.com
Fri Jul 25 23:23:13 UTC 2003
Ned Konz wrote:
> On Friday 25 July 2003 03:14 pm, Julian Fitzell wrote:
>
>>We really need something like kom-services in the base
>>image (I want some kind of listener that I can give a port and a
>>handler class or block or something and it will run one for each
>>incoming connection).
>
>
> We have ConnectionQueue, and there's already chunks of server logic
> that use it in EToyPeerToPeer, Nebraska, and probably in PWS as well,
> but I didn't look at it.
>
> It looks easy enough to use (this is from EToyPeerToPeer):
>
> [true] whileTrue: [
> socket _ connectionQueue getConnectionOrNilLenient.
> socket ifNil: [
> (Delay forMilliseconds: 50) wait
> ] ifNotNil: [
> self class new receiveDataOn: socket for: communicatorMorph
> ]
> ].
>
> However, I don't think the recursion in ConnectionQueue>>listenLoop is
> all that safe. It seems like retries on invalid sockets should be
> handled by the callers.
Yeah, I looked at ConnectionQueue (and even at the code that used it in
Nebraska) but the code in Nebraska did a bunch of stuff I didn't need
and ConnectionQueue seemed to be missing, basically, the chunk of code
you have above. I have no idea whether doing a loop with a 50ms delay
is the right way to do that or not... there should be a class one level
higher than ConnectionQueue in the base image that know the right way to
do it and just lets me right the code to handle the connection.
I'm not demanding anyone do this, by the way, I sort of started doing it
myself, but I'm not the most qualified to do it and it would be nice to
end up with something that everyone could comfortably use.
I also haven't actually looked at kom-services yet - Avi just told me
that was what I was looking for when I mentioned it.
Julian
More information about the Squeak-dev
mailing list
|