comp.lang.ada
 help / color / mirror / Atom feed
* ANN: Simple components for Ada v3.0
@ 2008-05-11 14:42 Dmitry A. Kazakov
  2008-05-11 20:09 ` John McCabe
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry A. Kazakov @ 2008-05-11 14:42 UTC (permalink / raw)


This version provides implementations of various locking primitives:

   - Plain events which can be signaled, reset and awaited for;
   - Arrays of events which can be signaled, reset and awaited in any
combination of in race condition free way;
   - Arrays of reentrant mutexes, deadlock-free with an enforced order of
locking;
   - Race condition free event distributing pulsed value to multiple tasks;
   - Reentrant mutexes;
   - Race condition free pulse events.

The documentation provides a discussion of using protected objects in Ada.
It represents a programming pattern for using entry parameter values in the
barrier and shows a way of avoiding race conditions. It also includes

   - A solution of the problem of tasks synchronization at a check point
based on sets of events;
   - A solution of the dining philosophers problem based on sets of
mutexes.

    http://www.dmitry-kazakov.de/ada/components.htm

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



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ANN: Simple components for Ada v3.0
  2008-05-11 14:42 ANN: Simple components for Ada v3.0 Dmitry A. Kazakov
@ 2008-05-11 20:09 ` John McCabe
  2008-05-12  8:16   ` Dmitry A. Kazakov
  0 siblings, 1 reply; 3+ messages in thread
From: John McCabe @ 2008-05-11 20:09 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:

>This version provides implementations of various locking primitives:
>
>   - Plain events which can be signaled, reset and awaited for;
>   - Arrays of events which can be signaled, reset and awaited in any
>combination of in race condition free way;
>   - Arrays of reentrant mutexes, deadlock-free with an enforced order of
>locking;
>   - Race condition free event distributing pulsed value to multiple tasks;
>   - Reentrant mutexes;
>   - Race condition free pulse events.

Dmitry

Are any of these (and your earlier releases on shared objects etc)
based on the discussions in the Burns & Wellings book?

Thanks
John




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ANN: Simple components for Ada v3.0
  2008-05-11 20:09 ` John McCabe
@ 2008-05-12  8:16   ` Dmitry A. Kazakov
  0 siblings, 0 replies; 3+ messages in thread
From: Dmitry A. Kazakov @ 2008-05-12  8:16 UTC (permalink / raw)


On Sun, 11 May 2008 21:09:26 +0100, John McCabe wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:
> 
>>This version provides implementations of various locking primitives:
>>
>>   - Plain events which can be signaled, reset and awaited for;
>>   - Arrays of events which can be signaled, reset and awaited in any
>>combination of in race condition free way;
>>   - Arrays of reentrant mutexes, deadlock-free with an enforced order of
>>locking;
>>   - Race condition free event distributing pulsed value to multiple tasks;
>>   - Reentrant mutexes;
>>   - Race condition free pulse events.
> 
> Are any of these (and your earlier releases on shared objects etc)
> based on the discussions in the Burns & Wellings book?

As far as I can tell, no.

For example, they solve the dining philosophers using a butler task. The
solution based on an array of mutexes uses no extra tasks, instead, seizing
forks is atomic. (If not, due to a programming error, an exception is
propagated when one of the philosophers starts eating. That is locking
ordering enforcing.)

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



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-05-12  8:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-11 14:42 ANN: Simple components for Ada v3.0 Dmitry A. Kazakov
2008-05-11 20:09 ` John McCabe
2008-05-12  8:16   ` Dmitry A. Kazakov

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