ATerms are being leaked due to construction and destruction threads not matching, .e.g., in lpsxsim.
mlaveaux opened this issue · 0 comments
mlaveaux commented
Currently term destructions are silently ignored when they do not occur in the protection set.
mCRL2/libraries/utilities/include/mcrl2/utilities/detail/hashtable.h
Lines 117 to 146 in 918acb2
Disabling this 'safety' escape reveals subtle bugs in how tools interact with the protection sets. One example being that lpxsim creates the Simulation' in the main thread, and then tries to read in an other LPS in a Qt event call ran on a separate thread. This IO operation will delete the original
m_stochastic_spec', which was created during initialisation. This results in that ATerm being leaked as it will never be removed from it's original protection set.