resolution of sockets on mac in 2.7 -> 2.8

Lex Spoon lex at cc.gatech.edu
Wed Jan 19 05:30:59 UTC 2000


The weakness is specifically that server sockets are closed and reopened
after each new connection, and so there are tiny windows of time where
connections will be refused.  This causes trouble if you are serving
inlined images or frames; on the other hand, it's not a big deal if all
you serve is text.

To fix this situation, there are a couple of new primitives in Squeak
that allow doing the more BSD-ish listen->accept style.  These have been
implemented only on Windows so far, so other platforms just fall back to
the old-style primitives.  On Macs, it sounds like there will be a
switch to OpenTransport at the same time that the new primitives show
up.  On Unix, people can try out my patch if they are impatient and need
this support NOW:

	http://www.cc.gatech.edu/~lex/squeak/sqUnixNetwork.c

I have no idea on platforms other than these big three....


Lex




merlyn at stonehenge.com (Randal L. Schwartz) wrote:
> 
> If I recall correctly, there was a discussion here about six months
> ago about how the sockets on the Mac Squeak were being done
> incorrectly for being a reliable server - something where a process
> puts up a "tell me if someone connects to port 80" which then
> disappears when the port is actually connected, so I must repeat the
> "tell me" part before the next potential client comes along.  This was
> in contrast to the BSD style of having a "listen->accept" paradigm,
> where the listener was always in place, and did not need to be
> reinstalled on each accepted client.
> 
> Now, did this ever get resolved from "icky old mac way" to "real BSD
> way" in any recent release?  Again, if I recall, it was something
> about "switching to open transport instead of MacTCP".  Also, if I
> recall, until this switch is made, Swikis and such can never be made
> totally reliable on heavy systems.
> 
> If it's been made already, thank you. :) I just don't recall it going
> by in any changeset.





More information about the Squeak-dev mailing list