comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Timeouts in Ada
Date: Fri, 25 Jul 2014 18:34:40 +0200
Date: 2014-07-25T18:34:40+02:00	[thread overview]
Message-ID: <1oq0g68ezm6b5.1142k8vxs284r$.dlg@40tude.net> (raw)
In-Reply-To: 1cbcaaba-766a-4b4d-a487-ecb77735efb2@googlegroups.com

On Fri, 25 Jul 2014 02:11:29 -0700 (PDT), AdaMagica wrote:

> On Thursday, July 24, 2014 5:37:39 PM UTC+2, Robert A Duff wrote:
> 
> But this is not the same as
> 
>>    select
>>      call_1(params);
>>    or
>>      call_2(params);
>>    or
>>      delay 10;
>>    end select;

BTW, there could be any combination of counters:

   select
      call_1 (params);
   and
      call_2 (params);
   or
      delay 10;
   end select;

Calls or makes rendezvous with two entries indivisibly.

A use case is prevention of deadlocks with mutexes:

Task 1:

   select -- Acquire both or none
      Resource_1.Seize;
   and
      Resource_2.Seize;
   end select;

Task 2:

   select
      Resource_2.Seize;
   and
      Resource_1.Seize;
   end select;

is safe, while

Task 1:

    Resource_1.Seize;
    Resource_2.Seize;

Task 2:

   Resource_2.Seize;
   Resource_1.Seize;

is unsafe.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  parent reply	other threads:[~2014-07-25 16:34 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-17  5:18 Timeouts in Ada NiGHTS
2014-07-17  7:08 ` Simon Wright
2014-07-17  8:35   ` NiGHTS
2014-07-21 23:34   ` Randy Brukardt
2014-07-22  1:11     ` Shark8
2014-07-22  7:39       ` J-P. Rosen
2014-07-22  8:31         ` Simon Wright
2014-07-22 21:52       ` Randy Brukardt
2014-07-17  7:38 ` J-P. Rosen
2014-07-17  8:40   ` NiGHTS
2014-07-17 10:00     ` J-P. Rosen
2014-07-17 19:27   ` Jeffrey Carter
2014-07-17 19:51     ` J-P. Rosen
2014-07-17 20:52       ` Jeffrey Carter
2014-07-17 20:29     ` Adam Beneschan
2014-07-17 20:52       ` J-P. Rosen
2014-07-21 23:44         ` Randy Brukardt
2014-07-17 20:43     ` Jeffrey Carter
2014-07-21 23:37   ` Randy Brukardt
2014-07-17  7:42 ` Dmitry A. Kazakov
2014-07-17  8:59   ` NiGHTS
2014-07-17  9:48     ` Dmitry A. Kazakov
2014-07-17 17:10       ` NiGHTS
2014-07-17 20:45         ` Dmitry A. Kazakov
2014-07-17 16:12 ` Adam Beneschan
2014-07-17 16:46   ` NiGHTS
2014-07-17 17:11     ` Simon Wright
2014-07-17 17:58       ` NiGHTS
2014-07-17 19:02         ` Jeffrey Carter
2014-07-17 18:58       ` Jeffrey Carter
2014-07-17 18:12     ` Adam Beneschan
2014-07-17 19:27       ` Jeffrey Carter
2014-07-17 18:56     ` Jeffrey Carter
2014-07-23 22:37     ` Robert A Duff
2014-07-24  9:23       ` AdaMagica
2014-07-24 15:37         ` Robert A Duff
2014-07-25  5:16           ` Randy Brukardt
2014-07-25  9:11           ` AdaMagica
2014-07-25 16:15             ` Brad Moore
2014-07-25 16:34             ` Dmitry A. Kazakov [this message]
2014-07-17 19:27 ` Jeffrey Carter
replies disabled

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