comp.lang.ada
 help / color / mirror / Atom feed
From: "Nick Roberts" <nickroberts@blueyonder.co.uk>
Subject: Re: terminate applications
Date: Thu, 17 Jul 2003 20:54:04 +0100
Date: 2003-07-17T20:54:04+01:00	[thread overview]
Message-ID: <bf6upn$b2m7q$1@ID-25716.news.uni-berlin.de> (raw)
In-Reply-To: bf5uks$8n0$1@e3k.asi.ansaldo.it

"Riccardo" <rfulcoli@amsjv.it> wrote in message
news:bf5uks$8n0$1@e3k.asi.ansaldo.it...

> is present a function that terminated applications?
> if yes what's?
>
> for example: exit(0); // language C

You should transfer control to the end of the main subprogram. For example:

   with Ada.Text_IO;
   procedure Main is
      Count: Natural := 0;
      procedure Some_Inner_Procedure is
         use Ada.Text_IO;
      begin
         Put_Line("Hello World");
         if Count = 100 then
            -- we want to terminate program here
            goto End_of_Program;
         end if;
      end Some_Inner_Procedure;
   begin
      loop
         Some_Inner_Procedure;
         Count := Count + 1;
      end loop; -- infinite loop
   <<End_of_Program>> -- this is how you write a goto label in Ada
   end Main;

This example doesn't necessarily show the most elegant technique, but it is
generally acceptable, and illustrates the idea.

Of course, the best technique is always to let the program flow naturally to
the end of the main subprogram, if it is reasonable to do so. To illustrate
this, the above example would certainly be better rewritten like this:

   with Ada.Text_IO;
   procedure Main is
      procedure Some_Inner_Procedure is
         use Ada.Text_IO;
      begin
         Put_Line("Hello World");
      end Some_Inner_Procedure;
   begin
      for i in 1..100 loop
         Some_Inner_Procedure;
      end loop;
   end Main;

I think it is quite important that, normally, you do not use any other
method to terminate an Ada program, since using another method could prevent
library packages (e.g. Ada.Text_IO, used in my examples) from finalizing
('cleaning up') properly.

PS: Would the above be suitable for submission to OSnippets in the Ada
category?

--
Nick Roberts
Jabber: debater@charente.de [ICQ: 159718630]






  reply	other threads:[~2003-07-17 19:54 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-17 10:39 terminate applications Riccardo
2003-07-17 19:54 ` Nick Roberts [this message]
2003-07-17 20:55   ` Mark A. Biggar
2003-07-17 22:44     ` Nick Roberts
2003-07-18  3:55 ` sk
  -- strict thread matches above, loose matches on Subject: below --
2003-07-18  9:36 christoph.grein
2003-07-18 10:54 ` Jeffrey Creem
2003-07-18 11:51   ` Marin David Condic
2003-07-18 13:26     ` Nick Roberts
2003-07-18 15:18     ` Jeffrey Creem
2003-07-19 15:44       ` Marin David Condic
2003-07-20  2:03         ` Robert I. Eachus
2003-07-20 11:04           ` Marin David Condic
2003-07-20 17:53             ` Robert I. Eachus
2003-07-21 12:02               ` Marin David Condic
2003-07-21 20:31                 ` Robert I. Eachus
2003-07-22 12:11                   ` Marin David Condic
2003-07-22 12:26                     ` Arnaud Charlet
2003-07-22 12:36                       ` Marin David Condic
2003-07-22 13:23                         ` Arnaud Charlet
2003-07-22 23:23                           ` Marin David Condic
2003-07-22 23:46                             ` Samuel Tardieu
2003-07-23 12:22                               ` Marin David Condic
2003-07-23 22:17                                 ` Randy Brukardt
2003-07-24  1:47                                   ` Hyman Rosen
2003-07-24  3:36                                     ` tmoran
2003-07-24  3:44                                       ` Hyman Rosen
2003-07-24  8:02                                         ` Samuel Tardieu
2003-07-24 19:54                                         ` Randy Brukardt
2003-07-24  7:45                                     ` Dmitry A. Kazakov
2003-07-24 14:54                                       ` Warren W. Gay VE3WWG
2003-07-24 15:46                                         ` Dmitry A. Kazakov
2003-07-26  2:58                                           ` Warren W. Gay VE3WWG
2003-07-28  8:17                                             ` Dmitry A. Kazakov
2003-07-28 21:08                                               ` Warren W. Gay VE3WWG
2003-07-29 10:42                                                 ` Marin David Condic
2003-07-29 13:47                                                   ` Hyman Rosen
2003-07-29 17:04                                                     ` Warren W. Gay VE3WWG
2003-07-24 12:01                                     ` Marin David Condic
2003-07-24 20:12                                     ` Randy Brukardt
2003-07-24 23:11                                       ` Robert I. Eachus
2003-07-26 12:52                                         ` Marin David Condic
2003-07-26  3:28                                       ` Warren W. Gay VE3WWG
2003-07-24 11:51                                   ` Marin David Condic
2003-07-24 20:32                                     ` Randy Brukardt
2003-07-26  3:16                                       ` Warren W. Gay VE3WWG
2003-07-26 13:16                                         ` Marin David Condic
2003-07-26 15:23                                           ` Nick Roberts
2003-07-26 15:48                                             ` Warren W. Gay VE3WWG
2003-07-27 11:36                                             ` Marin David Condic
2003-07-26 19:52                                           ` rleif
2003-07-26 13:01                                       ` Marin David Condic
2003-07-24 14:46                                   ` Warren W. Gay VE3WWG
2003-07-24 18:50                                     ` tmoran
2003-07-26 13:21                                       ` Marin David Condic
2003-07-23  4:02                             ` Robert I. Eachus
2003-07-23 12:28                               ` Marin David Condic
2003-07-24 16:06                                 ` Robert I. Eachus
2003-07-26 13:33                         ` Larry Kilgallen
2003-07-26 17:27                         ` Larry Kilgallen
     [not found]                         ` <Pine.LNX.4.44.0307221518190.26977-10000Organization: LJK Software <etldVqgp8sE1@eisner.encompasserve.org>
2003-07-26 20:18                           ` Warren W. Gay VE3WWG
2003-07-26 20:24                         ` Larry Kilgallen
     [not found]                         ` <Pine.LNX.4.44.0307221518190.26977-10000Organization: LJK Software <$TwrUBtoh25l@eisner.encompasserve.org>
2003-07-26 15:07                           ` Warren W. Gay VE3WWG
2003-07-27 11:43                           ` Marin David Condic
     [not found]                         ` <Pine.LNX.4.44.0307221518190.26977-10000Organization: LJK Software <q5jLYypXp6Yg@eisner.encompasserve.org>
2003-07-27 21:52                           ` Warren W. Gay VE3WWG
2003-07-28  2:45                         ` Larry Kilgallen
2003-08-01 17:00                           ` Warren W. Gay VE3WWG
2003-08-01 17:56                         ` Larry Kilgallen
2003-08-01 18:17                           ` Warren W. Gay VE3WWG
2003-08-01 18:48                         ` Larry Kilgallen
2003-07-22 12:59                       ` Lutz Donnerhacke
2003-07-22  5:16                 ` Randy Brukardt
2003-07-22 12:02                   ` Marin David Condic
2003-07-22 14:45                     ` Nick Roberts
2003-07-23  1:08 ` Dave Thompson
replies disabled

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