[Seaside] Forked processes and Seaside on VW

Reinout Heeck reinz at desk.org
Fri Mar 2 09:11:29 UTC 2007

Carl Gundel wrote:
> I depend on forked processes in Run BASIC.  When the user interacts with 
> the web browser it sends messages to a model which forks to do its 
> thing.  These processes yield frequently to give each other time to 
> execute.  I fork these processes at userBackgroundPriority, which I 
> believe is at 30.  When I look in the Process Monitor the actual Seaside 
> application that the user interacts with seems to be running at 65.  So, 
> I'm trying to figure out why when I have one process running at priority 
> level 30 it causes a Seaside session running at 65 to run very 
> sluggishly.  Shouldn't the higher priority process preempt the lower 
> priority one that is yielding frequently?

Yes unless you have priority inversion: the higher priority process 
blocks on a semaphore that the lower priority process will signal.

There are several accesslocks in VW that could induce such unwanted 
synchronization, for example in the Symbol table, in a Process' 
properties dictionary etc.

Another reason could be that the background process does a lot of calls 
that block the entire VM (synchronous DLLCC callouts, DNS name lookup 
primitive, creating NTFS filenames, ...)

Is the CPU usage 100% when you see this?



> -Carl Gundel, author of Liberty BASIC
> http://www.libertybasic.com
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

More information about the Seaside mailing list