On Thursday, 29 September 2016 at 09:56:34 UTC, Kagamin wrote:
Does it crash only in rt_finalize2? It calls the class destructor, and the destructor must not allocate or touch GC in any way because the GC doesn't yet support allocation during collection.

Thank you all for the good advice! I do none of those things in my code though... Unfortunately for having deterministic memory management, I would essentially need to develop GC-less, and would loose classes. This means many nice features of D aren't available, e.g. I couldn't use interfaces (AFAIK they don't work on structs) or constraints.

Strangely after switching from the GDC compiler to the LDC compiler, all crashes observed at Ubuntu are gone.
So, this problem is:
 A) A compiler / DRuntime bug, or
B) A bug in my code (not) triggered by a certain compiler / DRuntime

For the excessive memory usage, I have no idea yet - the GC not freeing its memory pool on exit is quite bad for Valgrinding the code. Memory consumption has bettered recently after not re-opening a LMDB database twice in the same process from multiple threads, which is not supported by LMDB. I haven't done longer runs yet, so I am not sure if that really was the problem (seems unlikely, but you never know...).

Cheers,
    Matthias

Reply via email to