[Squeakfoundation]WeakMessageSends/Events for 3.4

Ned Konz squeakfoundation@lists.squeakfoundation.org
Sun, 8 Dec 2002 10:52:07 -0800


--------------Boundary-00=_VQDTC0GIEDNTA7HQMYO8
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

On Sunday 08 December 2002 08:42 am, Rob Withers wrote:
> 3) Weak message sends and conversion of the NuBlu events to use
> them. Ned, I have an old file from you and a file I wrote to
> integrate into events. We may have diverged implementations long
> ago, so you might have something more current.
>
> In WeakMessageSend-nk, WeakMessageSends are defined to hold the
> receiver and any arguments, weakly.  Before evaluating, a weak
> message send checks to see if any of its references have
> disappeared, and throws an exception (WeakMessageSendError) if they
> are.  A test case is included.
>
> In my weak-events changeset, all #when:send:to: registration
> methods store a WeakMessageSend.  This means that objects involved
> in a multicast event registration must be referenced strongly by
> some object in the system, outside of the event registration.  This
> prevents dropped references from being sticky, and encourages
> better design.

Ah, I thought this had already been put into the image.

This is important IMO for use of the new event system. Just as the MVC=20
DependentsArray is weak, the registration of the new events should=20
use a weak mechanism like this. Otherwise, subscribers won't get GC'd=20
unless they first unsubscribe to the events; this is easy to miss.

I've looked over both weak-events.4.cs.gz and=20
WeakMessageSend-nk.3.cs.gz and they look good together and in the 3.4=20
image.

They should be loaded with the WeakMessageSend first (or better, made=20
into a merged CS).

I've attached a combined CS.

Could some of you look this over? I believe we'd be making a mistake=20
not putting it into 3.4.

Thanks,
--=20
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE

--------------Boundary-00=_VQDTC0GIEDNTA7HQMYO8
Content-Type: application/x-gzip;
  name="WeakMessageSend2-nk-rw.cs.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="WeakMessageSend2-nk-rw.cs.gz"

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
tmzc+/8Cxz9cYUc2AAA=

--------------Boundary-00=_VQDTC0GIEDNTA7HQMYO8--