comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Getting the index for an element in mutually referencing containers
Date: Sun, 12 Mar 2017 09:20:50 +0100
Date: 2017-03-12T09:20:50+01:00	[thread overview]
Message-ID: <oa30d2$1oj3$1@gioia.aioe.org> (raw)
In-Reply-To: lypohnbi6m.fsf@pushface.org

On 2017-03-11 22:46, Simon Wright wrote:

> I (a software Missile object) have been told to delete myself. In my
> finalization, I must send a command to my real-world equivalent telling
> it to destroy itself.

That is OK, but you (as software designer) should also answer the 
question what happens with the missile production log records. Should 
the sad end of the missile erase it from the production log? Tracking 
system?

As a software designer there is only one question. What is the contract 
of Delete? Usually the contract is silent about when the memory is freed 
or Finalization called. If you tried to put finalization into the 
contract you might find very difficult to implement it without breaking 
other contracts. The implementation of Ada container library serves as a 
perfect illustration to this.

> Basically, I (Simon, now) am having trouble thinking of an application
> where reference counting would be an appropriate solution.

As I said, in practice it is all cases when you would have a container 
of mutable elements. It is largely a language problem. But even without 
that, there are cases when you would need multiple references to the 
same element or resource.

E.g. in OS, there is a file object and handles to the file. When you 
tell Delete to a file you do that to the handle. The file is not deleted 
at once. Rather it will be "unnamed" (not instantly ether) and 
physically deleted only when the last handle is closed. And even then it 
could be kept for a while in the recycle bin.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  parent reply	other threads:[~2017-03-12  8:20 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-09 13:45 Getting the index for an element in mutually referencing containers Mart van de Wege
2017-03-09 15:25 ` Egil H H
2017-03-09 15:45   ` Mart van de Wege
2017-03-09 16:02     ` Mart van de Wege
2017-03-09 16:11     ` Egil H H
     [not found] ` <ly7f3xedp4.fsf@pushface.org>
     [not found]   ` <86k27xpikd.fsf@gaheris.avalon.lan>
     [not found]     ` <lywpbxc9my.fsf@pushface.org>
     [not found]       ` <86wpbxneuz.fsf@gaheris.avalon.lan>
     [not found]         ` <o9vcbp$t0t$1@franka.jacob-sparre.dk>
2017-03-11  6:45           ` Mart van de Wege
2017-03-11  8:40           ` Simon Wright
2017-03-11  8:58             ` Dmitry A. Kazakov
2017-03-11 11:21               ` Simon Wright
2017-03-11 14:18                 ` Dmitry A. Kazakov
2017-03-11 20:05                   ` Simon Wright
2017-03-11 20:52                     ` Dmitry A. Kazakov
2017-03-11 21:46                       ` Simon Wright
2017-03-11 22:37                         ` Niklas Holsti
2017-03-12  8:22                           ` Simon Wright
2017-03-12  9:38                             ` G.B.
2017-03-12 11:21                               ` Simon Wright
2017-03-13 10:29                             ` Alejandro R. Mosteo
2017-03-12  8:20                         ` Dmitry A. Kazakov [this message]
2017-03-12 11:30                           ` Simon Wright
2017-03-12 11:55                             ` Dmitry A. Kazakov
2017-03-12 16:44                               ` Simon Wright
2017-03-12 17:42                                 ` Dmitry A. Kazakov
2017-03-13 19:55                                   ` Randy Brukardt
2017-03-13 20:53                                     ` Dmitry A. Kazakov
2017-03-14 20:40                                       ` Randy Brukardt
2017-03-15  8:44                                         ` Dmitry A. Kazakov
2017-03-15 20:12                                           ` Randy Brukardt
2017-03-16  2:59                                             ` Paul Rubin
2017-03-16  9:04                                             ` Dmitry A. Kazakov
2017-03-13 23:25                                   ` Simon Wright
2017-03-14  8:25                                     ` Dmitry A. Kazakov
2017-03-12  1:36             ` Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox