[Seaside] Serving files

David Shaffer 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.

David



More information about the Seaside mailing list