Thread Sanitizer pointed out a number of places that hadn’t been protected by mutexes. Various global ID counters now use std::atomic types.
de::Animation’s current time was changed to be a static instance within Animation that gets updated by the animation clock’s audience. This avoids polling the clock and makes time checks easier (just lock the time and do the check).
Fixed|libcore: Improved thread-safety
Thread Sanitizer pointed out a number of places that hadn’t been
protected by mutexes. Various global ID counters now use std::atomic
types.
de::Animation’s current time was changed to be a static instance
within Animation that gets updated by the animation clock’s audience.
This avoids polling the clock and makes time checks easier (just
lock the time and do the check).