From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Custom Storage Pool questions
Date: Mon, 20 Sep 2021 09:59:11 -0700 (PDT) [thread overview]
Message-ID: <418724ab-d9a8-43d8-ad72-dc9c4b2daf31n@googlegroups.com> (raw)
In-Reply-To: <44be7c73-f69e-45da-9916-b14a43a05ea3n@googlegroups.com>
On Monday, September 20, 2021 at 12:48:21 AM UTC-6, briot.e wrote:
> > > If a compiler is allowed to break up an allocation into multiple
> > > calls to Allocate (and of course Deallocate), how does one go about
> > > enforcing that the user's header is only created once?
> > I think one cannot enforce that, because the calls to Allocate do not
> > indicate (with parameters) which set of calls concern the same object
> > allocation.
> I think the only solution would be for this compiler to have another attribute similar to 'Storage_Pool, but that would define the pool for the descriptor:
>
> for X'Storage_Pool use Pool;
> for X'Descriptor_Storage_Pool use Other_Pool;
>
> That way the user can decide when to add (or not) extra headers.
Hmmm, smells like a place to use generics and subpools; perhaps something like:
Generic
Type Element(<>) is limited private;
Type Descriptor(<>) is limited private;
with Create( Item : Element ) return Descriptor;
Package Descriptor_Subpool is
Type Pool_Type is new System.Storage_Pools.Subpools.Root_Storage_Pool_With_Subpools with private;
Private
-- Element-subpool & descriptor-subpool defined here.
-- Allocation of element also allocates Descriptor.
End Descriptor_Subpool;
Just top-of-the-head musings though.
next prev parent reply other threads:[~2021-09-20 16:59 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-13 0:53 Custom Storage Pool questions Jere
2021-09-13 5:29 ` Randy Brukardt
2021-09-14 1:04 ` Jere
2021-09-21 0:06 ` Randy Brukardt
2021-09-18 11:32 ` Simon Wright
2021-09-20 0:31 ` Jere
2021-09-20 6:34 ` Niklas Holsti
2021-09-20 6:48 ` Emmanuel Briot
2021-09-20 7:35 ` Dmitry A. Kazakov
2021-09-20 16:59 ` Shark8 [this message]
2021-09-21 0:50 ` Randy Brukardt
2021-09-21 23:08 ` Jere
2021-09-28 4:42 ` Randy Brukardt
2021-10-02 23:19 ` Jere
2021-10-03 8:52 ` Dmitry A. Kazakov
2021-10-14 1:26 ` Randy Brukardt
2021-09-13 11:12 ` J-P. Rosen
2021-09-14 0:48 ` Jere
2021-09-14 6:08 ` J-P. Rosen
2021-09-15 0:39 ` Jere
2021-09-15 7:01 ` Simon Wright
2021-09-16 23:32 ` Jere
2021-09-20 23:51 ` Randy Brukardt
2021-09-21 22:40 ` Jere
2021-09-14 6:23 ` Dmitry A. Kazakov
2021-09-14 6:42 ` J-P. Rosen
2021-09-14 7:00 ` Dmitry A. Kazakov
2021-09-20 23:58 ` Randy Brukardt
2021-09-15 0:21 ` Jere
2021-09-15 6:54 ` Dmitry A. Kazakov
2021-09-20 23:48 ` Randy Brukardt
2021-09-14 10:54 ` Egil H H
2021-09-15 0:11 ` Jere
2021-09-15 16:43 ` Simon Wright
2021-09-15 17:03 ` Simon Wright
2021-09-15 19:07 ` Dmitry A. Kazakov
2021-09-15 20:40 ` Simon Wright
2021-09-16 7:12 ` Emmanuel Briot
2021-09-16 23:21 ` Jere
2021-09-17 7:08 ` Emmanuel Briot
2021-09-17 7:18 ` Simon Wright
2021-09-17 13:56 ` Dmitry A. Kazakov
2021-09-17 19:46 ` Simon Wright
2021-09-17 20:39 ` Dmitry A. Kazakov
2021-09-17 21:17 ` Niklas Holsti
2021-09-18 7:49 ` Dmitry A. Kazakov
2021-09-18 9:03 ` Niklas Holsti
2021-09-18 10:22 ` Dmitry A. Kazakov
2021-09-18 15:59 ` Niklas Holsti
2021-09-18 16:19 ` Dmitry A. Kazakov
2021-09-19 10:36 ` Niklas Holsti
2021-09-19 11:41 ` Dmitry A. Kazakov
2021-09-20 7:05 ` Niklas Holsti
2021-09-20 7:35 ` Dmitry A. Kazakov
2021-09-20 8:08 ` Niklas Holsti
2021-09-20 8:28 ` Dmitry A. Kazakov
2021-09-21 0:45 ` Randy Brukardt
2021-09-21 0:40 ` Randy Brukardt
2021-09-21 0:30 ` Randy Brukardt
2021-09-21 0:37 ` Randy Brukardt
2021-09-21 6:28 ` Dmitry A. Kazakov
2021-09-28 4:38 ` Randy Brukardt
2021-09-28 7:00 ` Dmitry A. Kazakov
2021-09-21 0:26 ` Randy Brukardt
2021-09-21 6:51 ` Dmitry A. Kazakov
2021-09-28 4:31 ` Randy Brukardt
2021-09-28 6:56 ` Dmitry A. Kazakov
2021-09-28 7:52 ` Simon Wright
2021-09-28 8:07 ` Dmitry A. Kazakov
2021-09-28 22:04 ` Randy Brukardt
2021-09-29 7:57 ` Dmitry A. Kazakov
2021-09-29 14:41 ` Shark8
2021-09-29 15:16 ` Dmitry A. Kazakov
2021-09-30 0:16 ` Randy Brukardt
2021-09-30 8:08 ` Dmitry A. Kazakov
2021-10-01 0:04 ` Randy Brukardt
2021-10-01 8:25 ` Dmitry A. Kazakov
2021-10-02 9:06 ` Randy Brukardt
2021-10-02 10:18 ` Dmitry A. Kazakov
2021-10-03 4:33 ` Randy Brukardt
2021-10-03 8:40 ` Dmitry A. Kazakov
2021-10-14 1:21 ` Randy Brukardt
2021-10-14 3:12 ` philip...@gmail.com
2021-10-14 7:31 ` Dmitry A. Kazakov
2021-10-15 0:36 ` Randy Brukardt
2021-10-15 8:08 ` Stephen Leake
2021-10-15 8:18 ` Dmitry A. Kazakov
2021-10-15 22:22 ` Randy Brukardt
2021-10-15 8:15 ` Dmitry A. Kazakov
2021-10-15 22:44 ` Randy Brukardt
2021-10-16 9:00 ` Dmitry A. Kazakov
2021-10-16 14:32 ` Simon Wright
2021-10-16 15:06 ` Dmitry A. Kazakov
2021-10-18 14:23 ` Shark8
2021-09-21 0:19 ` Randy Brukardt
2021-09-21 0:18 ` Randy Brukardt
2021-09-16 8:41 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox