More on the deadlock
Bill Schwab
BILLS at ANEST4.ANEST.UFL.EDU
Mon Oct 7 20:49:29 UTC 2002
Hello all,
I did some more with #printAllStacks (which I shamelessly hacked
into the place of #printCallStack in a custom VM).
(1) The "extra blank lines" that I reported before appear to be
coming about because the #printCallStack iterates all objects,
identifies Semaphores (at which point it adds a cr) and then looks
for processes waiting on the semaphore. Moving the cr below the
first link fetch, and testing for the link/process being not nil before
adding the cr seems to fix it.
(2) Re "missing" processes, I can explain at least one. The idle
process calls a primitive to yield to the OS (or do nothing) and
appears never to actually wait on a semaphore, so the
#printCallStacks algorithm does not detect it. Seem reasonable?
With the hacked VM, I'm finding that after the lockup, the UI
process is stopping at the delay in #interCyclePause:. I'm not
surprised to see it blocked someplace, but the fact that it seems
not to do anything ever again leads me to ask whether the delay is
for some reason never signaled. Any suggestions?
Bill
Wilhelm K. Schwab, Ph.D.
University of Florida
Department of Anesthesiology
PO Box 100254
Gainesville, FL 32610-0254
Email: bills at anest4.anest.ufl.edu
Tel: (352) 846-1285
FAX: (352) 392-7029
More information about the Squeak-dev
mailing list
|