std.container.BinaryHeap + refCounted = WTF???
dsimcha
dsimcha at yahoo.com
Wed Nov 17 09:09:11 PST 2010
== Quote from Steven Schveighoffer (schveiguy at yahoo.com)'s article
> The issue is that if you append to such an array and it adds more pages in
> place, the block length location will move. Since each thread caches its
> own copy of the block info, one will be wrong and look at array data
> thinking it's a length field.
> Even if you surround the appends with a lock, it will still cause problems
> because of the cache. I'm not sure there's any way to reliably append to
> such data from multiple threads.
> -Steve
Would assumeSafeAppend() do the trick?
More information about the Digitalmars-d
mailing list