<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Levente --<div><br></div><div>> <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">expects that the first two assignments happen </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">atomically</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">We should add this to the comment.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><div class="mb_sig"></div><blockquote class='history_container' type='cite' style='border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 13.03.2022 22:42:03 schrieb Levente Uzonyi <leves@caesar.elte.hu>:</p><div style='font-family:Arial,Helvetica,sans-serif'>Hi Christoph,<br><br>#condenseNewSymbols expects that the first two assignments happen <br>atomically. Using #ifEmpty: and creating a block will introduce suspension <br>points, hence atomicity will not be ensured.<br><br>Despite its name, the method also compacts SymbolTable as it is stated<br>in the method comment. That would not be true with your change.<br><br>On my machine it takes 40-60ms for the original method to finish. Is that <br>too slow? If yes, it can be sped up but a different method needs to <br>be changed.<br><br><br>Levente<br><br>On Sat, 12 Mar 2022, commits@source.squeak.org wrote:<br><br>> A new version of Collections was added to project The Inbox:<br>> http://source.squeak.org/inbox/Collections-ct.995.mcz<br>><br>> ==================== Summary ====================<br>><br>> Name: Collections-ct.995<br>> Author: ct<br>> Time: 12 March 2022, 2:46:24.947632 am<br>> UUID: 9c697903-e2ac-2244-85cb-5234b3a3c9ca<br>> Ancestors: Collections-mt.994<br>><br>> Accelerates Symbol condenseNewSymbols if there are no new symbols.<br>><br>> =============== Diff against Collections-mt.994 ===============<br>><br>> Item was changed:<br>>  ----- Method: Symbol class>>condenseNewSymbols (in category 'private') -----<br>>  condenseNewSymbols<br>>    "Move all symbols from NewSymbols to SymbolTable, and compact SymbolTable."<br>><br>>       | originalNewSymbols originalSymbolTable newNewSymbols newSymbolTable |<br>> +         originalNewSymbols := NewSymbols ifEmpty: [^ self].<br>> -     originalNewSymbols := NewSymbols.<br>>         originalSymbolTable := SymbolTable.<br>>       newNewSymbols := WeakSet new.<br>>     newSymbolTable := originalSymbolTable copy<br>>                addAll: originalNewSymbols;<br>>               compact;<br>>                  yourself.<br>>         originalNewSymbols == NewSymbols ifFalse: [<br>>               "Some other process has modified the symbols. Try again."<br>>               ^self condenseNewSymbols ].<br>>       NewSymbols := newNewSymbols.<br>>      SymbolTable := newSymbolTable!<br><br></div></blockquote>
                                        </div></body>