Boost logo

Boost Users :

Subject: Re: [Boost-users] [pool] singlton_pool::malloc returning bad address
From: Jonathan Leonard (v-jleonard_at_[hidden])
Date: 2009-07-06 13:46:41


Well, I built the test with all 5 structures and let it run all weekend with no problems (it overflowed an int64 at least one time in terms of repetitions). It ran an even distribution but I really doubt that an uneven distribution would've produced different results. Sorry for the false alarm.

Thanks,
Jonathan

-----Original Message-----
From: boost-users-bounces_at_[hidden] [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Jonathan Leonard
Sent: Thursday, July 02, 2009 11:00 PM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] [pool] singlton_pool::malloc returning bad address

Only one of them did get corrupted (but the program halted at that point so I can't say for sure that they others wouldn't have). I believe it was T5. I'll construct a stress test tomorrow which tests all 5 pools with their actual frequencies of allocation and post the results back here. If that test passes, then I suppose it must be heap or stack corruption in my program (which just so happened to negatively affect singleton_pool but not tbb:scalable_alloc).

--Jonathan

________________________________________
From: boost-users-bounces_at_[hidden] [boost-users-bounces_at_[hidden]] On Behalf Of Steven Watanabe [watanabesj_at_[hidden]]
Sent: Thursday, July 02, 2009 9:27 PM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] [pool] singlton_pool::malloc returning bad address

AMDG

Jonathan Leonard wrote:
> It's called with 5 different data structures (all with a different size). I'm not exactly sure the distribution of these but can measure it if that would be of use. Here are the [obfuscated but structurally-equivalent] types:
>
> struct T1
> {
> C* _p;
> boost::function<void (int, bool)> _f;
> unsigned __int64 _offset1;
> unsigned __int64 _offset2;
> boost::shared_ptr<std::vector<BYTE, VirtualAllocator<BYTE>>> _vec;
> };
>
> struct T2
> {
> boost::function<void (bool)> _f;
> };
>
> struct T3
> {
> C* _p;
> C* _p2;
> };
>
> struct T4
> {
> C* _p;
> C* _p2;
> unsigned int _i;
> unsigned int _i2;
> C* _p3;
> unsigned int _i3;
> C* _p4;
> int _i4;
> };
>
> struct T5
> {
> C* _p;
> int _i;
> int _i2;
> unsigned int _i3;
> unsigned int _i4;
> };
>

Which of these causes problems?
Or do the pools all get corrupted?

I've just tried running about 35 billion 8-byte allocations without any
problems.

In Christ,
Steven Watanabe

_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net