SharedQueue issues

John M McIntosh johnmci at smalltalkconsulting.com
Wed Jun 15 18:59:28 UTC 2005


I managed to trip over a problem with SharedQueues this morning. My  
test VM locked up but
I managed to dump the procedure stacks via GNU Debug and found, every  
process was idle

What I saw was everything was waiting on the event queue  
accessProtect (Semaphore forMutualExclusion)
and they were:

nextOrNilSuchThat:
next
nextPut:

Except for this process which had the accessProtect semaphore and was  
waiting on readSynch wait.

{110688608 [] in SharedQueue>flushAllSuchThat:
110791160 [] in Semaphore>critical:
110791344 BlockContext>ensure:
110688700 Semaphore>critical:
110688424 SharedQueue>flushAllSuchThat:}

I believe the problem here is that flushAllSuchThat: is now waiting  
on readSynch, but the signal it needs
is waiting on accessProtect (pending nextPut:) before doing the  
readSynch signal.

Classic deadlock situation.

I'm wondering if the folks who poked at readSynch last might have  
some thoughts how they wanted to fix things?


--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===





More information about the Squeak-dev mailing list