This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Pool allocators, the Next Generation


A brief progress report:  One experimental version is done and working.
It maintains parity in the current allocator settings, and allows us to
delete pthread_allocimpl.h entirely.  A new typedef, __gthread_alloc, sits
alongside __alloc and __single_client_alloc, with all the major features of
pthread_alloc and the added bonus that it follows the --enable-threads=xxx
decisions.

Bunch of other cleanups, e.g., more behind-the-scenes stuff moved from
std into __gnu_cxx.

The major downside:  There are virtual function calls in the critical path.
I still need to do lots of timing tests before I'll even begin to suggest
this approach, and even then it would be with a plea for assistance to
help get rid of them.

In the mean time, however, this is what's in the "unified tree with changes"
that gets pounded on by the autocrasher.  Also, I won't be working on it
for a while; more doxygenating needs to happen before 3.3 goes out.

One last comment to something I wrote:

> I plan on providing enough predefined policies ("policies" == "type arguments
> to the p.a. template") to cover the functionality we currently have.
> Then adding new policies should be much easier for both us and for end users.

Easier for the users, at least.  When I wrote that I forgot we have to
manually instantiate everything.  Still, not too bad a chore.


Phil

-- 
If ye love wealth greater than liberty, the tranquility of servitude greater
than the animating contest for freedom, go home and leave us in peace.  We seek
not your counsel, nor your arms.  Crouch down and lick the hand that feeds you;
and may posterity forget that ye were our countrymen.            - Samuel Adams


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]