MPS issue job001156

TitleMPS cannot queue a message when a weak thing goes away
Statusclosed
Priorityoptional
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionMPS cannot queue a message when a weak thing goes away. There should be option to queue a message. See customer request [1].
AnalysisSee [2] for analysis from RB.

GDR 2013-03-08: It looks to me as though this is not a problem any more. In the current implementation of weakness, you can detect the splatting of a weak reference by looking in the scan method to see if the reference became NULL when you fixed it. See the example in the documentation [3]. This is likely to be timelier than waiting for a message on the message queue.

If you absolutely insist on using messages, you can pair your weak reference with a strong reference to a finalizable object, and then when you detect that the weak reference has been splatted, then you null out the corresponding strong reference, which will (eventually) cause a finalization message to be sent.
How foundcustomer
Evidence[1] <http://info.ravenbrook.com/mail/2005/02/28/12-40-49/0.txt>
[2] <http://info.ravenbrook.com/mail/2005/04/05/13-33-11/0.txt>
[3] <http://info.ravenbrook.com/project/mps/master/manual/html/topic/weak.html>
Observed in1.105.0
Created byRichard Kistruck
Created on2005-03-10 03:11:45
Last modified byRichard Brooksby
Last modified on2013-03-12 12:50:35
History2005-03-10 RHSK Created.
2005-04-05 RB Added reference to notes from analysis session.
2013-03-08 GDR More analysis.

Fixes

Change Effect Date User Description
180202 closed 2012-10-31 17:45:35 Gareth Rees Write weak references chapter.