>��not that output is interleaved with a specific policy.Hi Eliot,��I guess it was hard to analyse that output dump from your phone, and I should have been more explicit.�� The problem is not the interleave order, but duplicate and missing output items.�� I've cut down the example and��and manually reordered the Squeak items to make it easier to see this. ��Transcript clear.[ �� $a asciiValue to: $h asciiValue do: [ :c |�� [�� 1 to: 9 do: [ :i |�� �� �� �� Transcript show: c asCharacter printString , i printString , ' '.�� Processor yield.�� ].�� ] forkAt: 40.�� ].] forkAt: 41.Squeak 4.5 gives...$a1 $b1 $b1 $c1 $d1 $e1 $f1 $g1 $h1��$a2 $b2 $b2 $c2 $d2 $e2 $f2 $g2 $h2 ��$a3 $b3 $b3 $c3 $d3 ��$b4��$d4 $f4 $g4 $g4��$b5 $c5 $d5 $d5 $f5 ��$a6 $a6��$c6 $d6 $e6 $f6 $g6 $h6��$a7 $b7 $d7 $d7 $g7 $h7 $f7��$a8 $a8 $b8 $c8 $c8 $f8 $g8 $h8 $h8��$b9 $b9 $c9 $e9 $e9��$f9 $f9��$g9 $h9 ��Pharo 50041 gives...$a1 $b1 $c1 $d1 $e1 $f1 $g1 $h1��$a2 $b2 $c2 $d2 $e2 $f2 $g2 $h2��$a3 $b3 $c3 $d3 $e3 $f3 $g3 $h3��$a4 $b4 $c4 $d4 $e4 $f4 $g4 $h4��$a5 $b5 $c5 $d5 $e5 $f5 $g5 $h5��$a6 $b6 $c6 $d6 $e6 $f6 $g6 $h6��$a7 $b7 $c7 $d7 $e7 $f7 $g7 $h7��$a8 $b8 $c8 $d8 $e8 $f8 $g8 $h8��$a9 $b9 $c9 $d9 $e9 $f9 $g9 $h9��The Pharo output is untouched (except to insert newlines). Its ordering is only a side effect of correct behaviour wrt showing *all* output *once only*.�� Indeed its only a side effect that the output ordering (presumably) reflects the actual order that processes were scheduled -- but actually this is a critical advantage when trying to debug multi-threaded race conditions.����
cheers -benOn Sun, May 10, 2015 at 12:20 AM, Eliot Miranda <eliot.miranda@gmail.com> wrote:Hi Ben,�� �� first, thanks for responding dispassionately to the technical issues.As far as thread-safety I thought the issue with the transcript was not providing some form of protection against unpredictable interleavings of output from multiple separate processes, but was just avoiding lock-up.�� If one outputs to another kind of stream (file, terminal window) from multiple processes you typically get jumbled output on a first-come first-served basis.�� What one wants IMO is that the transcript remains robust, with no red morphs of death, not that output is interleaved with a specific policy.
Eliot (phone)