comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen.a.leake.1@gsfc.nasa.gov>
Subject: Re: Question concerning usage of gnatmem
Date: 20 Sep 2002 08:07:46 -0400
Date: 2002-09-20T12:18:06+00:00	[thread overview]
Message-ID: <usn04q2y5.fsf@gsfc.nasa.gov> (raw)
In-Reply-To: amcuih$mgu$1@news.online.de

"Dr. Michael Paus" <paus@ib-paus.com> writes:

> Stephen Leake wrote:
> > "Dr. Michael Paus" <paus@ib-paus.com> writes:
> >
> >>When I run the program I have to stop it via Cntrl-C because this software
> >>was designed to run forever and there is no other way to stop it. Does this
> >>lead to a corrupt output file?
> > In general, I suspect the answer is "yes".
> >
> >>If the output is likely to be corrupt is there any other way to get
> >>the memory usage until the time when the program is stopped?
> > Probably not. Modify your code; it probably has a top-level forever
> > loop. Change it
> > to run 1000 times, or whatever produces useful results.
> 
> Well, if it were so easy I would have done that already :-) The program
> consists of about 30 tasks all waiting for some input to process and
> some of them listening on sockets to receive some data from external
> sources. It is not so easy to force this program to terminate without
> major changes to the code. 

As I recall, what you are doing is trying to find out if there is a
memory leak. That can be done by running each piece of the program
separately, in a unit test. If each unit does not leak, the program as
a whole does not leak.

Hmm, maybe you were trying to find out the max memory usage of the
program. That's harder to do in pieces, since it depends on the
pattern of use. If you really need to know that, you'll need to define
your own storage pools, that allow you to query their current usage.
Then add a command to one of the tasks to dump that information.

> If I remember correctly there was a discussion here recently on how
> to stop an Ada program. The solution, if there was any, would be
> handy here now.

Abort the environment task. That's supposed to also abort all
dependent tasks, but it may not work if they are waiting on sockets
(since that's an OS issue, not an Ada issue). Give it a try.


Perhaps you can add a "please terminate" message to each task? Maybe
that's what you meant by "major changes to the code".

-- 
-- Stephe



  reply	other threads:[~2002-09-20 12:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-19 12:02 Question concerning usage of gnatmem Dr. Michael Paus
2002-09-19 16:20 ` Stephen Leake
2002-09-19 16:38   ` Dr. Michael Paus
2002-09-20 12:07     ` Stephen Leake [this message]
2002-09-22  8:52       ` Dr. Michael Paus
replies disabled

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