From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,8eff44ec1bcf8433 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-10-17 07:13:31 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!fr.usenet-edu.net!usenet-edu.net!proxad.net!feeder2-1.proxad.net!news2-1.free.fr!not-for-mail Message-ID: <3BCD91D9.C77668AA@free.fr> Date: Wed, 17 Oct 2001 16:12:41 +0200 From: Jean-Marc Bourguet X-Mailer: Mozilla 4.78 [en] (X11; U; SunOS 5.7 sun4u) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Container reqs References: <9qctpn$lil$1@news.huji.ac.il> <3BCC01B1.18C18C98@free.fr> <3BCC6CB7.20BAA30D@boeing.com> <3BCD2EC3.3B3C4498@free.fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Organization: Guest of ProXad - France NNTP-Posting-Date: 17 Oct 2001 16:13:30 MEST NNTP-Posting-Host: 158.140.208.29 X-Trace: 1003328010 news2-1.free.fr 32585 158.140.208.29 X-Complaints-To: abuse@proxad.net Xref: archiver1.google.com comp.lang.ada:14804 Date: 2001-10-17T16:13:30+02:00 List-Id: Ted Dennison wrote: > > In article <3BCD2EC3.3B3C4498@free.fr>, Jean-Marc Bourguet says... > > > >4) whatever you do -- trying to modify the datastructure simultaneously > >via iterators from different tasks -- is save. > > > >From my experience, > > * level 4 is useless because you still need synchronisation > > for other reasons when its whole generality is needed. Achieving it > > has a major performance impact (every operation has to be > >protected). > > But your "level 4" is exactly what is needed for the "gender-bender" > server-to-server queue we were referring to. This is a *quite* common need. Its > come up in every multitasking Ada app I've ever written of at least moderate > complexity. Your assertion is quite wrong too. When used as I described, it is > the *only* communication the two server tasks need. In fact, it is the only safe > communication method they can have. There is a possibility I don't understand what you are refering to -- so if you think it is the case, please explain it more thorougly. For a queue defined by three operations (is_empty, enqueue, dequeue) out of which two are modifying, the difference between level 3 and level 4 is so small that it has only a signification if you are also looking at the other containers. I'm arguing that level 4 (where it is substantially different than level 3) is not usefull and that level 3 is usefull but quite application specific so one is better providing it on a tailored way in each application (I don't remember having ever needed concurrent modifications via iterators for exemple which is the requirement I reacted to initially.). Yours, -- Jean-Marc