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=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Finalization of library level tasks Date: Thu, 26 Apr 2018 11:03:18 +0200 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: MyFhHs417jM9AgzRpXn7yg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 X-Notice: Filtered by postfilter v. 0.8.3 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:51727 Date: 2018-04-26T11:03:18+02:00 List-Id: On 26/04/2018 01:46, Randy Brukardt wrote: > "Dmitry A. Kazakov" wrote in message > news:pavqa6$1qdj$1@gioia.aioe.org... > ... >> Yes. The problem is the order of finalization. For some unclear reason the >> task's access type is attempted before the object that contains that >> access type because they are in the same scope. > > It's not unclear - tasks have to terminate before objects are finalized so > that the tasks aren't trying to use finalized objects. If the object is a > protected object, that could be a really bad deal (remember that finalizing > a protected object raises tasking error in any queued task and prevents > future calls). It is all objects, not just ones containing the task. You could have: package A is task type Foo ... X : Foo; end A; package A.B is type Bar is new Ada.Finalization.Controlled ... Y : Bar; end A.B; Even so, finalization of Y will await termination of X! The deadlock in the RM is constructed to prevent any possible way to break it. There are dozens ways to fix the mess but there seems no interest at all. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de