<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>NonReentrantWeakMessageSend does what it says, while the message is being executed, additional evaluations will be discarded.</div><div>It's&nbsp;used by when:sendOnce:to: protocol from Polymorph events, but unused in the base image.</div><div>when:send:to:exclusive: is used one place though.</div><div><br></div><div>It's useful when objects are mutually registered to each other's events, but the actions may lead to the others action being triggered.</div><div>Examples are&nbsp;</div><div>- two lists whose contents update based on the selection in the other</div><div>- The DiffMorph (Uses ExclusiveWeakMessageSend)</div><div><br></div><div><div>ExclusiveWeakMessageSend are used when the decision whether to process an event is shared between multiple objects.</div><div>IE 2 objects respond to different events, but if received simultaneously, only the first of them should have it's action executed.</div></div><div><br></div><div>With Announcement, the corresponding functionality to non-reentrancy would be achieved using:</div><div>VW - AnnouncementCollection&gt;&gt;suspendWhile: &nbsp;anActionBlock</div><div>Pharo - Announcer &gt;&gt; suspend: aSubscriber while: anActionBlock (As we neither have a specific AnnouncementCollection class, nor access to Registry itself.&nbsp;Not implemented yet though :P)</div><div><br></div><div>The shared state required to achieve Exclusivity would probably have to recide outside of the framework.</div><div><br></div><div>Cheers,</div><div>Henry</div><div><br></div><div><br><div><div>On Apr 4, 2011, at 9:59 56PM, laurent laffont wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span style="border-collapse:collapse;font-family:arial, sans-serif"><div style="font-size:13px;margin-top:5px;margin-right:15px;margin-bottom:5px;margin-left:15px;padding-bottom:20px">
<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">Today: &nbsp;NonReentrantWeakMessageSend</span></div>

<div><br></div><div><br></div><div>(ExclusiveWeakMessageSend aborted - no answer)</div>
<div><br></div><div style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><br></div><div style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">Comment Of The Day Contest - One Day One Comment<br>


Rules:&nbsp;</span></span></div><div style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">#1: Each day a not commented class is elected. Each day the best comment will be integrated with name of the author(s).</span></span></div>


<div style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"></span></span>#2: If you cannot comment it, deprecate it.<br>


<div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><div>Results:&nbsp;<a href="http://code.google.com/p/pharo/wiki/CommentOfTheDayContest" style="color:rgb(28, 81, 168)" target="_blank">http://code.google.com/p/pharo/wiki/CommentOfTheDayContest</a></div>


<div><br></div></span></span></div></div><font color="#888888"><font color="#888888"><font face="arial, sans-serif"><span style="border-collapse:collapse">Laurent</span></font></font></font></span></div></div></span>
</blockquote></div><br></div></body></html>