[Issue 16564] KRRegion.empty sometimes returns Ternary.no

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed Jul 5 07:39:16 PDT 2017


https://issues.dlang.org/show_bug.cgi?id=16564

Temtaime <temtaime at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #4 from Temtaime <temtaime at gmail.com> ---
Increasing buffer size from 256 kb to 1 mb causes a crash or returns not empty
again

import
        std.stdio,
        std.random,
        std.typecons,
        std.algorithm,

        std.experimental.allocator.building_blocks;


void main()
{
    ubyte[1024 * 1024] buf;
    auto a = KRRegion!()(buf);

    while(true)
    {
        void[][] bufs;

        foreach(_; 0..10_000)
        {
            bufs ~= a.allocate(uniform(1, buf.length));
        }

        foreach(b; bufs.randomCover)
        {
            a.deallocate(b);
        }

        if(a.empty == Ternary.no) break;
    }

    writeln(`all the elements are freed but allocator is not empty !`);
}

--


More information about the Digitalmars-d-bugs mailing list