6293LowSpaceWatcherFix-dtl considered harmful
andreas.raab at gmx.de
Thu Mar 31 08:48:38 UTC 2005
Hi Folks -
Trying to track a problem in Tweak I ran into the above mentioned
update. I won't comment on the process of how it got into the image (I
think you all know my opinion about eyeballing system-critical changes
and I am almost certain that the approval went something like "oh, what
possible harm could a one-line change do") but I am rather interested in
what problem this is trying to fix.
The comment of the change set states: "The low space watcher is
interrupted in the context of the wrong process when the eventTickler
process (or other high priority process) is running. This prevents low
space detection from functioning properly."
But this makes no sense whatsoever. The low space watcher can be only be
interrupted if it is running (non-running processes are never
interrupted) but all the running low space watcher does is to throw up
an interrupt (which we all agree on is the right thing to do) on the
currently active process. If the user presses Alt-period when this
happens why would it be wrong to interrupt the low space watcher?
It is precisely the right thing to do (in fact, it is the only thing
that can be done if we are to honor the user interrupt). If we choose to
*ignore* the actual running process (such as is done in the above
update) and just arbitrarily interrupt the "main" project process we
will never be able to interrupt any run-away process which is different
from the main process. As an example, take:
forkAt: Processor userSchedulingPriority+1.
With the original version of the method you *were* able to interrupt
that process (try it - revert to its previous version run the above and
hit alt-period). With the version of the method in the update you will
not be able to interrupt a runaway process like the above.
Whatever this update is trying to address, it cannot possibly be what is
being claimed in the preamble. So what problem is this update trying to
More information about the Squeak-dev