comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Allocators and exceptions
Date: Wed, 12 Sep 2007 17:19:01 -0500
Date: 2007-09-12T17:19:01-05:00	[thread overview]
Message-ID: <fc9of6$r8u$1@jacob-sparre.dk> (raw)
In-Reply-To: 1189600614.629447.86470@k79g2000hse.googlegroups.com

"Maciej Sobczak" <see.my.homepage@gmail.com> wrote in message
news:1189600614.629447.86470@k79g2000hse.googlegroups.com...
> On 12 Wrz, 00:56, Georg Bauhaus <rm.tsoh+bauh...@maps.futureapps.de>
> wrote:
>
> > > But... did I mention that C++ handles this issue correctly? ;-)
> > > And no, it does not have any super-capable access types. A little bit
> > > smarter allocator is enough.
> >
> > C++ doesn't seem to handle deallocation etc. of sibling components
> > either, so I'm not sure I understand.
>
> It does. In case of exception the already constructed components are
> rolled back. This works for components of array as well.

Ada does of course finalize any components that have already been
constructed. It doesn't just drop them on the floor!! The problem (if you
can call it that) with Ada is that is clearly defines when that will happen.
You want it to happen *earlier* than that definition.

One could argue that that definition is wrong, but it is what it is.

For what it's worth, the definition you seem to want would be extremely
expensive to implement in Janus/Ada: every allocated component would need a
dedicated (compiler generated) exception handler in order to be able free
the associated memory immediately. The effect would be to make allocators 10
times bigger and possibly 10 times slower. (It surely would be that much for
our [obsolete] MS-DOS compilers, which used a heap of our own design; I'm
not sure how expensive the Windows heap allocations are so it might be
somewhat less.) Programs that do a lot of allocation could have a pretty
significant performance impact (and that would include the containers
libraries).

                                        Randy.





  reply	other threads:[~2007-09-12 22:19 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-09  7:40 Allocators and exceptions Maciej Sobczak
2007-09-09 12:17 ` anon
2007-09-09 20:31   ` Maciej Sobczak
2007-09-09 22:43     ` Simon Wright
2007-09-10 12:10       ` Maciej Sobczak
2007-09-10 19:08         ` Simon Wright
2007-09-10  2:56     ` anon
2007-09-10 12:42     ` Dmitry A. Kazakov
2007-09-10 21:48       ` Maciej Sobczak
2007-09-11  9:16         ` Dmitry A. Kazakov
2007-09-11  9:19           ` Maciej Sobczak
2007-09-11 12:27             ` Dmitry A. Kazakov
2007-09-11 19:07               ` Maciej Sobczak
2007-09-11 22:56                 ` Georg Bauhaus
2007-09-12 12:36                   ` Maciej Sobczak
2007-09-12 22:19                     ` Randy Brukardt [this message]
2007-09-12  9:32                 ` Dmitry A. Kazakov
2007-09-12 12:42                   ` Maciej Sobczak
2007-09-12 15:25                     ` Dmitry A. Kazakov
2007-09-12 12:29             ` Stephen Leake
2007-09-12 12:46               ` Maciej Sobczak
2007-09-12 20:53                 ` Simon Wright
2007-09-12 22:32                   ` Randy Brukardt
2007-09-12 23:43                     ` Simon Wright
2007-09-13  3:42                       ` Randy Brukardt
2007-09-13  3:36                     ` Randy Brukardt
2007-09-13  9:43                     ` Maciej Sobczak
2007-09-12 22:25                 ` Randy Brukardt
2007-09-13 11:51                 ` Stephen Leake
2007-09-12 14:14               ` Markus E L
2007-09-10 10:37 ` Allocators and exceptions => Read Me First anon
2007-09-10 12:16   ` Maciej Sobczak
2007-09-10 22:10     ` Allocators and exceptions => Trying Again anon
2007-09-10 23:15       ` Markus E L
2007-09-10 15:44 ` Allocators and exceptions Adam Beneschan
2007-09-10 21:58   ` Maciej Sobczak
2007-09-10 22:07   ` Jeffrey R. Carter
2007-09-11  9:14   ` Dmitry A. Kazakov
2007-09-11  9:23     ` Maciej Sobczak
2007-09-11  2:36 ` Randy Brukardt
2007-09-11 15:33   ` Adam Beneschan
2007-09-11 19:21     ` Maciej Sobczak
2007-09-11 21:56     ` Adam Beneschan
2007-09-12  0:34       ` Jeffrey R. Carter
2007-09-12 12:13         ` Maciej Sobczak
2007-09-12 16:34           ` Jeffrey R. Carter
2007-09-12 23:50             ` Jeffrey R. Carter
2007-09-12 12:22       ` Maciej Sobczak
2007-09-12 14:11         ` Markus E L
2007-09-12 16:08         ` Adam Beneschan
2007-09-12 20:35           ` Dmitry A. Kazakov
2007-09-12 21:01             ` Adam Beneschan
2007-09-12 22:45             ` Randy Brukardt
2007-09-13  7:48               ` Dmitry A. Kazakov
2007-09-12  3:08 ` Allocators and exceptions -- Debugging says memory leak! anon
replies disabled

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