[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