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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,470860aa3e635a7 X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!out02b.usenetserver.com!news.usenetserver.com!in04.usenetserver.com!news.usenetserver.com!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: GNAT for MS Visual Studio Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <13duou81kg3sd1c@corp.supernews.com> <4xsl4zw3bp.fsf@hod.lan.m-e-leypold.de> <1191357491.860178.230380@22g2000hsm.googlegroups.com> <4702ADCC.7080209@obry.net> <1191439439.120567.172630@g4g2000hsf.googlegroups.com> <4703F02D.3030207@obry.net> <1191682021.844225.236870@g4g2000hsf.googlegroups.com> <4707A3D0.3070702@obry.net> <1tq0h0fb74sxe$.2ys0qzmfxcqo.dlg@40tude.net> <4707C0CC.1000108@obry.net> Date: Sat, 6 Oct 2007 20:30:06 +0200 Message-ID: <1aa677sd3f3ox.k8awuo7pj13r.dlg@40tude.net> NNTP-Posting-Date: 06 Oct 2007 20:30:09 CEST NNTP-Posting-Host: 2a3d4bea.newsspool1.arcor-online.net X-Trace: DXC=> On Sat, 06 Oct 2007 19:07:24 +0200, Pascal Obry wrote: > type Whatever is tagged record > ... > end record; > > You can definitely read an object of type Whatever from multiple tasks. > You don't have to use a protected object. > > You can also read the memory pointed to any access type from multiple > tasks. You don't have to use a protected object. AFAIK, ARM is silent about this. The most close reference is 9(8): "In addition, tasks can communicate indirectly by reading and updating (unprotected) shared variables, presuming the access is properly synchronized through some other kind of task interaction." Note: "properly synchronized." Unsynchronized reading and updating are explicitly classified as erroneous execution in 9.10. But nothing is said about reading and reading. As a thought experiment (admittedly unrealistic) consider Ada tasks running on a multi-core processor assessing at low level shared core memory (with destructive reads). My guess is that at least pragma Atomic_Components (Whatever); is required. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de