comp.lang.ada
 help / color / mirror / Atom feed
From: Michael Rowley <rowley@intermetrics.com>
Subject: Re: What task storage_size to use?
Date: 1997/11/24
Date: 1997-11-24T00:00:00+00:00	[thread overview]
Message-ID: <3479C8CF.9F2FEA18@intermetrics.com> (raw)
In-Reply-To: mheaney-ya023680002311971911160001@news.ni.net


Matthew Heaney wrote:
> 
> In article <34785EC5.740B76B0@intermetrics.com>, Michael Rowley
> <rowley@intermetrics.com> wrote:
> 
> >Another approach that I am thinking of using is to create my own
> >Storage_Pool for the task access type, which would allocate one more
> >page than necessary for the task and write protect the extra page.  Then
> >if there is a page fault on that page I would know that I am within one
> >page of running out of stack space, and then try to recover gracefully.
> 
> I don't get it.  Why don't you just catch Storage_Error?

Two reasons.  First, at least as of Gnat3.07 or so (I haven't checked
recently) overflowing the stack didn't generate a storage error. 
Apparently, according to Robert Dewar, that is now fixed.

Second.  It would be very difficult for me to clean up after a storage
error that could have happened at almost any place in my program.  There
are certain places in my program where I would like to be able to ask:
am I almost out of stack space?  If I did the memory protection scheme
that I mentioned above, I would NOT generate an exception.  Instead, I
would unprotect the page and then set a global variable, which would be
checked before the stack got much deeper.  That variable would signify
that I better stop growing the stack now.

Michael Rowley
rowley@inmet.com




  reply	other threads:[~1997-11-24  0:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3472A748.213DF2CA@intermetrics.com>
     [not found] ` <3.0.1.32.19971121191820.00b96cf0@spectre.mitre.org>
1997-11-23  0:00   ` What task storage_size to use? Michael Rowley
1997-11-23  0:00     ` Matthew Heaney
1997-11-24  0:00       ` Michael Rowley [this message]
1997-11-24  0:00         ` Robert Dewar
1997-11-24  0:00       ` Robert Dewar
replies disabled

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