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 <[email protected]> wrote: > > > On Tue, 2 Apr 2019 at 23:36, ducasse <[email protected]> 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."
