comp.lang.ada
 help / color / mirror / Atom feed
From: Lutz Donnerhacke <lutz@iks-jena.de>
Subject: Re: terminate applications
Date: Tue, 22 Jul 2003 12:59:33 +0000 (UTC)
Date: 2003-07-22T12:59:33+00:00	[thread overview]
Message-ID: <slrnbhqd9i.oa.lutz@taranis.iks-jena.de> (raw)
In-Reply-To: Pine.LNX.4.44.0307221421270.25598-100000@localhost.localdomain

* Arnaud Charlet wrote:
>> I could probably go search through the Win32api and find a "Kill this 
>> process and I really, really mean it" system call, but a) it would be 
> 
> If that's what you're looking for (and it seems indeed pretty clear from
> your previous messages), then I'd suggest you ignore the other messages on
> this thread, and you do the same as with any other programming language:
> 
> procedure Halt;
> pragma Import (C, Halt, "exit");
> 
> ...
> Halt;
> 
> and be done with it.

That will start a clean shutdown of the libc. You don't won't that.

with Kernel.Processes;
[...]
   procedure Halt renames Kernel.Processes.sysexit;
   [...]
   Halt;

This is the right way! Read the spec:
   --  NAME
   --         exit - terminate the current process
   --  SYNOPSIS
   --         void _exit(int status);
   procedure sysexit (return_code : exit_code_t);
   --# global in out Kernel.State;
   --# derives Kernel.State from Kernel.State, return_code;
   pragma Inline_Always (sysexit);

and the implementation:

separate (Kernel.Processes)
procedure sysexit(return_code : exit_code_t) is
   UnusedRes : Linux_i86.syscall_result;
begin
   Linux_i86.syscall1(Linux_i86.sys_exit, long(return_code), UnusedRes); --! Assignment to UnusedRes is ineffective.
end sysexit; --! The variable UnusedRes is neither referenced nor exported.

and the exception freedom proof:

procedure_sysexit_1.
H1:  true.
H2:  return_code >= exit_code_t__first.
H3:  return_code <= exit_code_t__last.
        ->
C1:  return_code >= kernel__linux_i86__long__first.
C2:  return_code <= kernel__linux_i86__long__last.
C3:  kernel__linux_i86__sys_exit >= kernel__linux_i86__syscall_number__first.
C4:  kernel__linux_i86__sys_exit <= kernel__linux_i86__syscall_number__last.
C5:  return_code >= long__first.
C6:  return_code <= long__last.
 

*** Rule substitutions phase 1
*** Applied substitution rule sysexit_rules(4)
*** Applied substitution rule sysexit_rules(5)
*** Applied substitution rule sysexit_rules(3)
*** Applied substitution rule sysexit_rules(9)
*** Applied substitution rule sysexit_rules(10)
*** Applied substitution rule sysexit_rules(14)
*** Applied substitution rule sysexit_rules(15)
*** PROVED C3
*** PROVED C4
*** Rule substitutions phase 2
*** Applied substitution rule sysexit_rules(19)
*** Applied substitution rule sysexit_rules(20)
*** Standardise hypotheses
*** Standardise conclusions
*** PROVED C1
*** PROVED C2
*** PROVED C5
*** PROVED C6
*** Contradiction hunt
*** Proved all conclusions - VC eliminated
*** Expression reduction

          ==================================================

For path(s) from start to finish:

procedure_sysexit_2.
*** true .          /* trivially true VC removed by Examiner */

*** PROVED C1
*** Proved all conclusions - VC eliminated

Automatic simplification completed.

And don't do this with C!



  parent reply	other threads:[~2003-07-22 12:59 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-18  9:36 terminate applications 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
     [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
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 <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 [this message]
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
  -- strict thread matches above, loose matches on Subject: below --
2003-07-17 10:39 Riccardo
2003-07-17 19:54 ` Nick Roberts
2003-07-17 20:55   ` Mark A. Biggar
2003-07-17 22:44     ` Nick Roberts
2003-07-18  3:55 ` sk
replies disabled

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