I���m inherently race condition incompatible and just avoid concurrent programming because I���m too dull on this.��
I've solved a few Pharo race conditions before, so just a tip (that you maybe already know).
You can't troubleshoot a race condition by standard debugging, because it alters the timing.
Best that I've done before is resorting to plain old print-line tracing between every line of the suspect code,
or the equivalent threadsafe collection if its not a hard crash.
e.g....
someMethod
�� �� threadsafeCollection add: "methodname-A" , testCondition
�� �� original method line 1
�� �� threadsafeCollection add: "methodname-B", testCondition
�� �� original method line 2
and then looking for cyclic patterns in that data and breaks in those patterns.
I can have a look in a few weeks.�� Right now working 13 hour days to the end of the week