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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,23ffa52608fbb144 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.223.40 with SMTP id qr8mr18532493pbc.0.1337456862226; Sat, 19 May 2012 12:47:42 -0700 (PDT) Path: pr3ni6777pbb.0!nntp.google.com!news1.google.com!goblin2!goblin.stu.neva.ru!feeder2.ecngs.de!ecngs!feeder.ecngs.de!Xl.tags.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!local2.nntp.ams.giganews.com!nntp.brightview.co.uk!news.brightview.co.uk.POSTED!not-for-mail NNTP-Posting-Date: Sat, 19 May 2012 14:46:28 -0500 From: Robert Matthews Date: Sat, 19 May 2012 20:46:25 +0100 User-Agent: KNode/4.8.2 Subject: Re: Problem with Delay Alternative in Finalization Newsgroups: comp.lang.ada References: <6v0er7d545kvs3pr7aqe1dnrlq4mg5ldhg@4ax.com> MIME-Version: 1.0 Message-ID: X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-J6Og8eSsOHldX0jFlhh7AAPnOb/evXO9ekD9n7GzzMlIjEFN1t7Nmc09byZvmY9qQ6dfkIWiXS3j8iW!LssvrpAxuOHUhqOTKtD4q/kOn8qts1F+oO+KIrLsZONHpdxRklRoFftVYW5ZXiwbn/ZtI+31YiIm!QUijxvQVQlwBRo8SfsY0s6GE X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 2036 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit Date: 2012-05-19T20:46:25+01:00 List-Id: Dmitry A. Kazakov wrote: > On Fri, 18 May 2012 21:30:31 -0500, Tim McGuire wrote: > >> I am running in to a problem where a delay alternive used when in >> finalization doesn't seem to be working properly. >> The delay part never seems to happen. > > It is Program_Error to propagate an exception from Initialize, which is > what I think happens when you raise Lock_Timeout_Exception. > > BTW, you can use task identification in order to allow reentrant locks. > In the 2005 standard at 7.6.1 para 14.a: "It is not a bounded error for Initialize to propagate an exception. If Initialize propagates an exception, then no further calls on Initialize are performed, and those components that have already been initialized (either explicitly or by default) are finalized in the usual way." So Program Error is not raised from Initialize - though on general grounds it may well be best to avoid raising exceptions in an Initialize. Robert