Hi,
after migrating from 2.28.0 to version 2.28.2 (rev 1887), I am getting a strange ASSERT on windows, in as_atomic.cpp (line 50):
Hi,
after migrating from 2.28.0 to version 2.28.2 (rev 1887), I am getting a strange ASSERT on windows, in as_atomic.cpp (line 50):
I thought I had fixed this problem in revision 1880, but apparently there is some other scenario where it is still happening.
Unless you're facing a completely different problem, it is not related to multithreading, but rather that the clean-up of the data has a problem where the ValidateNoUsage() accesses the memory even after the object has been destroyed. As far as I could tell at the time this is only due to the debug code, as it is only ValidateNoUsage() that does this. You can comment out the call to the ValidateNoUsage() for now, as it is just an extra safe-guard I've put in the code to catch errors.
I still want to know more though, as I'll need to be able to reproduce this problem in order to fix it. Can you produce a small test case that reproduces the problem and share it with me?
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
Thanks, that's what I thought too. I am still trying to find out the minimal scenario that triggers this. Right now it is only happening in a huge code base and basic test cases do not show this issue yet. :-(
A quick update on this: after fixing my code (a call to Release on a script object missing) and properly calling asThreadCleanup(), the ASSERT is not triggered anymore. So it seems that there was actually a good reason for it!
Thanks for the feedback.
Hopefully I'll be able to figure out a way to provide a more friendly error message in this case.
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game