[Seaside] Forked processes and Seaside on VW
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
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
More information about the Seaside