From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Reference counting and idempotent finalize Date: Thu, 12 Sep 2013 09:54:00 +0200 Organization: cbb software GmbH Message-ID: <1adx00b15pjmu.k2vsys1vrxp3.dlg@40tude.net> References: Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: IenaDxMXK2hi7fvYcb+MlQ.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:17167 Date: 2013-09-12T09:54:00+02:00 List-Id: On Thu, 12 Sep 2013 05:05:27 +0000 (UTC), Natasha Kerensikova wrote: > A negative value of Counter would mean something is seriously wrong with > the compiler or the memory has been corrupted. Yes it happens not very frequently. A far more probable issue when the count has to be checked against 0 is in the Finalize of counted objects. If you discover that the count is not zero, that is a serious problem. This happens very often upon exception propagation when there are still outstanding references and the compiler calls Finalize because something (some type for example) goes out for the scope. There is a funny rule that the compiler has to maintain a list of controlled objects and call Finalize on its own when you least expect it... -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de