comp.lang.ada
 help / color / mirror / Atom feed
From: "Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org>
Subject: Re: Advice, tasking and hardware
Date: Thu, 26 May 2016 12:35:04 -0700
Date: 2016-05-26T12:35:04-07:00	[thread overview]
Message-ID: <ni7iue$v9b$1@dont-email.me> (raw)
In-Reply-To: <ni68f8$1t85$1@gioia.aioe.org>

On 05/26/2016 12:26 AM, Dmitry A. Kazakov wrote:
> 
> If you want interlocking for doing blocking calls use a mutex etc. A mutex
> implementation based on protected objects is two actions: Seize and Release.

To the OP: This is terrible advice. One should only use a low-level mechanism
such as a semaphore when one can't achieve what one needs with the high-level
mechanisms provided by the language: tasks and protected objects. Since there's
no way for the compiler to know that the subprogram is potentially blocking,
there's no reason not to put the call in a PO and make use of the high-level
mutual exclusion it provides. Even if the system has problems with the call
being in a protected operation, it's better to put a request for the call on a
protected queue and have a task that gets the requests from the queue and makes
the calls than to use a semaphore.

-- 
Jeff Carter
"This trial is a travesty. It's a travesty of a mockery of a
sham of a mockery of a travesty of two mockeries of a sham. ...
Do you realize there's not a single homosexual on that jury?"
Bananas
27

  parent reply	other threads:[~2016-05-26 19:35 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 [this message]
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
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