[Seaside] Serving files
cdshaffer at acm.org
Wed Oct 11 12:10:39 UTC 2006
Philippe Marschall wrote:
> Well the main reason is not speed but Squeak File IO in general. For
> example it's not thread-safe.
Just a point of clarification: Squeak File I/O is "thread safe" (if, by
"thread" you mean Squeak process). The problem with it is that the
Squeak VM uses blocking I/O calls for file I/O (not for socket I/O!).
So is quite possible that the OS will block all processes in the Squeak
image while reading or writing a file. This can be a problem when
serving large files. If you're serious about serving files from Squeak
you could use a modified ModFile which uses Async-I/O under platforms
that support it. I posted a first attempt at a version of this to the
Squeak Wiki but it required a modified VM. I think that it could be
done without modifying the VM though. Anyway the correct solution is,
of course, making Squeak's underlying file I/O asychronous just as the
socket I/O already is.
More information about the Seaside