By the looks of it, takeSnapshot() does not use mutex in LoggedValue, which is potentially dangerous and makes mutex pretty much useless.
By the looks of it, takeSnapshot() does not use mutex in LoggedValue, which is potentially dangerous and makes mutex pretty much useless.