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/
next prev parent 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