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 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,d8de0100a4b5ff9d X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.scarlet.biz!news.scarlet.biz.POSTED!not-for-mail NNTP-Posting-Date: Thu, 16 Mar 2006 15:32:59 -0600 From: Ludovic Brenta Newsgroups: comp.lang.ada Subject: Re: Exception propagation References: <1142435766.866193.190130@i40g2000cwc.googlegroups.com> Date: Thu, 16 Mar 2006 22:29:20 +0100 Message-ID: <87acbqdqof.fsf@ludovic-brenta.org> User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux) Cancel-Lock: sha1:me3K20Kem5A61jiXd+f7lIgBjYg= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii NNTP-Posting-Host: 83.134.241.169 X-Trace: sv3-pYtt2wmWYYLPcUbVuQ25CmnzS8V2Cp5o1G7n5trSvJcVAT6ucURbYo/J74I3VPek9kXhJA3t9IRJDuZ!f+7OW5nAs320sM4TZ6ynlIPEgnN5P0YN4ctpdzRKdcZ1N3PFDbSJM1TWnqSuye4Of0cNQXWnQbY= X-Complaints-To: abuse@scarlet.be X-DMCA-Complaints-To: abuse@scarlet.biz X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.32 Xref: g2news1.google.com comp.lang.ada:3386 Date: 2006-03-16T22:29:20+01:00 List-Id: "REH" writes: > I found this "In a distributed program, the identity is unique across > an entire program, not just across a single partition. Exception > propagation works properly across RPC's. An exception can be propagated > from one partition to another, and then back to the first, where its > identity is known. " in the ARM. > > Does this mean that the id of an exception is identical in each > partition? So, if I am using a partitioned OS, can I send an > exception's id from one partition to another and reliably raise it? I am under the impression that you confuse the Ada notion of a "partition" and the OS notion; please correct me if I'm wrong. In Ada, you have one "program" distributed in "partitions". Partitions may run on the same or on different computers; for example a FreeDOS machine may run only one partition at a time, but GNU/Linux can run several, as each partition is a process. You may also use a bare board embedded computer to run a single partition with no operating system underneath it. In operating systems, "partitions" all run on the same physical system, and each "partition" contains an instance of an operating system. At least, that's the terminology used by e.g. IBM with "LPAR" - logical partitions. This technology appeared first on mainframes, then migrated to AS/400 (now iSeries), then RS/6000 (now pSeries) and is finally reaching low-end x86 boxes now. The Ada distributed systems annex says that the run-time system will propagate an exception from one "Ada" partition to another, wherever they may be. And yes, the ID of the exception is the same in all Ada partitions, since together they form one single Ada program. And yes, if you happen to run several instances of an operating system on one server ("LPAR"), each containing one or more of your Ada partitions, then exceptions will propagate from one LPAR to another, and even from one physical computer to another if that's what you need. You don't send the ID of an exception, because you comile all your partitions together as one program; thus each partition has the same table of exception definitions. You just "raise" in a subprogram in one partition and handle in the possibly different partition containing the calling subprogram. Does that answer your question? -- Ludovic Brenta.