comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Re: Multitasking and containers
Date: Fri, 24 Nov 2006 11:35:11 +0100
Date: 2006-11-24T11:35:11+01:00	[thread overview]
Message-ID: <ek6hsv$t1o$1@cernne03.cern.ch> (raw)
In-Reply-To: <b62ajtddi0xt.5azckp3k6y3u.dlg@40tude.net>

Dmitry A. Kazakov wrote:

>> Paragraph 3 in Annex A says that it's OK to call any standard subprogram 
>> from concurrent tasks as long as the parameters do not overlap. John 
>> Barnes ("Progamming in Ada 2005") suggests that in order to (for 
>> example) read from the same container, the operations need to be 
>> protected "by using the normal techniques such as protected objects".
>>
>> But reading from the protected object is not mutually exclusive (many 
>> readers are allowed) - so where's the gain? What's the difference 
>> between concurrent reads of, say, a Vector via protected object vs. 
>> direct access?
> 
> I think he didn't mean container being a protected object.

No, but you might want to encapsulate a container within a protected 
object and have some protected procedures and functions forwarding to 
relevant ones in the container.

> [ I don't know if ARM 2005 permits mutable implementations of read
> operations on the containers. I suppose it does, so the need to lock upon
> read. ]

That would be interesting, but would break apart when encapsulated 
within a protected object, because there multiple readers would be allowed.

Having a mutex for readers sounds like a concurrency killer and relying 
on protected wrappers seems to be fragile because of this possible 
mutability. So - what is The Solution (tm) for multiple tasks reading 
from the same container?

Let's say you want to have N worker tasks consulting a shared dictionary 
(map) that was initialized before the tasks started their work. How 
would you solve this?

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/



  reply	other threads:[~2006-11-24 10:35 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-24  8:51 Multitasking and containers Maciej Sobczak
2006-11-24 10:11 ` Georg Bauhaus
2006-11-24 10:19 ` Dmitry A. Kazakov
2006-11-24 10:35   ` Maciej Sobczak [this message]
2006-11-24 11:14     ` Dmitry A. Kazakov
2006-11-24 12:13       ` Matthew Heaney
2006-11-27  4:17         ` Jeffrey R. Carter
2006-11-27 10:30           ` Georg Bauhaus
2006-11-27 18:41             ` Jeffrey R. Carter
2006-11-27 18:57               ` Dmitry A. Kazakov
2006-11-27 19:45               ` Matthew Heaney
2006-11-27 21:15                 ` Simon Wright
2006-11-28  1:43                 ` Dr. Adrian Wrigley
2006-11-28  2:19                   ` Matthew Heaney
2006-11-28  8:50                     ` Dmitry A. Kazakov
2006-11-28 10:31                       ` Georg Bauhaus
2006-11-28 11:24                         ` Dmitry A. Kazakov
2006-11-29  8:51                           ` Georg Bauhaus
2006-11-28 17:12                       ` Matthew Heaney
2006-11-28 18:21                         ` Dmitry A. Kazakov
2006-11-28 19:17                           ` Matthew Heaney
2006-11-29 18:43                             ` Dmitry A. Kazakov
2006-11-29 10:14                       ` Maciej Sobczak
2006-11-29 15:50                         ` Matthew Heaney
2006-11-24 12:12     ` Matthew Heaney
2006-11-24 12:05   ` Matthew Heaney
2006-11-24 12:02 ` Matthew Heaney
replies disabled

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