6293LowSpaceWatcherFix-dtl considered harmful

Andreas Raab 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:

	[[true] whileTrue:[]]]
		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 
solve?

Cheers,
   - Andreas



More information about the Squeak-dev mailing list