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