comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Advice, tasking and hardware
Date: Fri, 27 May 2016 17:05:37 -0500
Date: 2016-05-27T17:05:37-05:00	[thread overview]
Message-ID: <niagbh$12t$1@loke.gir.dk> (raw)
In-Reply-To: nia5lo$oik$1@dont-email.me

"Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org> wrote in message 
news:nia5lo$oik$1@dont-email.me...
> On 05/27/2016 12:50 AM, Dmitry A. Kazakov wrote:
>
> [a lot of irrelevant stuff]
>
> No response to this post is needed, since it had nothing to do with the 
> specific
> point I made and to which he was apparently responding. However, there is 
> a
> false statement that should be corrected.
>
>> 3. Ada tasks have problems with termination. The termination alternative 
>> design
>> makes is unusable in most cases. There must be Shut_Down entry instead 
>> and a
>> caller of it as well.
>
> I have personally written hundreds of tasks that cannot use a terminate
> alternative and do not have an entry to cause them to terminate, yet which
> terminate normally when they should. Anyone who can't see multiple ways to
> achieve this using only tasks and protected objects should not be 
> considered
> competent to develop concurrent software.

Huh. Most people *aren't* competent to develop concurrent software -- it's 
way too hard and (unlike sequential code) the compiler and language is no 
help. (Race conditions and deadlocks are trivial in Ada code; very little 
practical code doesn't have them.). But most of us have to develop such 
software anyway, whether or not we're competent.

So I don't find that much of an argument for any point vis-a-vis 
concurrency.

[Especially as I've never figured out how to properly shut down the tasks in 
any of my service programs. Maybe I could have figured out something, but it 
would have greatly complicated an already complicated system. Instead, I 
kill the process manually in the rare case that I need to restart a service 
(and I also have a watchdog program that kills and restarts non-responsive 
services, and triggers a full system reboot if that doesn't work - that 
probably would be needed in any case, just to keep services up as much as 
possible {in case of DoS bugs}). A club rather than a screwdriver, but a lot 
easier.]

                                             Randy.



  reply	other threads:[~2016-05-27 22:05 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-25 21:24 Advice, tasking and hardware patrick
2016-05-26  1:09 ` Jeffrey R. Carter
2016-05-26  8:13   ` Simon Wright
2016-05-26  7:26 ` Dmitry A. Kazakov
2016-05-26 16:41   ` patrick
2016-05-26 17:56     ` Dmitry A. Kazakov
2016-05-26 20:35     ` Jeffrey R. Carter
2016-05-26 19:35   ` Jeffrey R. Carter
2016-05-26 20:51     ` patrick
2016-05-27  7:50     ` Dmitry A. Kazakov
2016-05-27 18:00       ` Simon Wright
2016-05-27 19:06       ` Jeffrey R. Carter
2016-05-27 22:05         ` Randy Brukardt [this message]
2016-05-27 23:09           ` Jeffrey R. Carter
2016-05-27 19:13       ` Shark8
2016-05-27 20:27         ` Dmitry A. Kazakov
2016-05-27 22:27           ` Randy Brukardt
2016-05-28  6:49             ` Dmitry A. Kazakov
2016-05-28 14:38           ` Shark8
2016-05-28 15:45             ` Dmitry A. Kazakov
2016-05-28  0:25 ` rieachus
2016-05-28  1:57   ` patrick
2016-05-28  4:13   ` Jeffrey R. Carter
2016-06-01 14:37     ` rieachus
2016-06-01 19:09       ` Dmitry A. Kazakov
2016-06-06  3:33         ` rieachus
2016-06-06  7:18           ` Dmitry A. Kazakov
2016-06-07 16:53             ` rieachus
2016-06-07 20:21               ` Dmitry A. Kazakov
2016-06-08  4:06                 ` rieachus
2016-06-08  7:29                   ` Dmitry A. Kazakov
2016-06-08 12:56                     ` rieachus
2016-06-08  0:19               ` Dennis Lee Bieber
replies disabled

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