Hello,<br><br>After Matthew pointed out that Transcript&gt;&gt;show: isn&#39;t tread-safe, I changed it to Transcript&gt;&gt;nextPutAll:<br><br>The script still wasn&#39;t give the expected output. So after playing around a bit, I discovered if I waited just a bit before flushing it would then work.&nbsp; It feels like a hack though.
<br><br>semA := Semaphore new.<br>semB := Semaphore new.<br><br>[Transcript cr; nextPutAll: &#39;b1&#39;. semB signal. semA wait.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transcript cr; nextPutAll: &#39;b2&#39;. ] fork.<br>[Transcript cr; nextPutAll: &#39;a1&#39;. semA signal. semB wait.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transcript cr; nextPutAll: &#39;a2&#39;.] fork.<br>(Delay forMilliseconds: 1) wait.<br>Transcript flush<br><br>Results:<br><br>b1 a1 a2 b2<br><br>It&#39;s kind of strange why this only seems to bite me. :/<br>
<br>Thanks for the help,<br>&nbsp; JTS<br><br><br><br>