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: border1.nntp.dca1.giganews.com!nntp.giganews.com!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!feeder.erje.net!eu.feeder.erje.net!gandalf.srv.welterde.de!news.jacob-sparre.dk!loke.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Timeouts in Ada Date: Tue, 22 Jul 2014 16:52:02 -0500 Organization: Jacob Sparre Andersen Research & Innovation Message-ID: References: <50bdb713-7ce1-411b-810b-9bdee1d26b7a@googlegroups.com> <_Sizv.37414$ic5.15869@fx21.iad> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: loke.gir.dk 1406065922 17211 69.95.181.76 (22 Jul 2014 21:52:02 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Tue, 22 Jul 2014 21:52:02 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Response X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Xref: number.nntp.dca.giganews.com comp.lang.ada:187799 Date: 2014-07-22T16:52:02-05:00 List-Id: "Shark8" wrote in message news:_Sizv.37414$ic5.15869@fx21.iad... > On 21-Jul-14 17:34, Randy Brukardt wrote: >> Ergo, the best thing to do with ATC is to ignore that it exists. > > When you have advice like that it kinda indicates a mistake. > Would you call ATC a mistake? (I've never used it, so I can't REALLY > say -- though it seems that perhaps an entirely different structure > [rather than overloading SELECT] may've helped.) It's hard to say. It might be useful in very limited circumstances. As Dmitry pointed out, the semantics of abort is so nasty that it is hard to do anything useful afterwards, unless what is aborted is carefully limited. (And the language gives no help in that.) So, I'd suggest using it only if there is no other way (the same goes for abort proper, BTW), you are sure you know what you are doing, and the abortable part doesn't contain any I/O or other system calls [other than tasking], but it does contain lots of abort completion points. Then it can be used somewhat portably. Definitely stay miles away if any I/O is involved, or for that matter any writing of large global data structures. Randy.