Instead of printing, you can also use Beacon. We actually developed Beacon specifically to be able to debug a parallel distributed system. Cheers, Doru
On Apr 2, 2019, at 11:56 PM, Ben Coman <btc@openInWorld.com> wrote:
On Tue, 2 Apr 2019 at 23:36, ducasse <stepharo@netcourrier.com> wrote: 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 threadsafeCollection add: "methodname-C", testCondition
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 and then vacationing in China for 10 days.
-- www.feenk.com "Sometimes the best solution is not the best solution."