Details
-
Bug
-
Status: Resolved
-
Trivial
-
Resolution: Fixed
-
2.6.0
-
Reviewed
Description
/**
- Resets all statistics to 0.
* - In order to reset, we add up all the thread-local statistics data, and
- set rootData to the negative of that.
* - This may seem like a counterintuitive way to reset the statsitics. Why
- can't we just zero out all the thread-local data? Well, thread-local
- data can only be modified by the thread that owns it. If we tried to
- modify the thread-local data from this thread, our modification might get
- interleaved with a read-modify-write operation done by the thread that
- owns the data. That would result in our update getting lost.
* - The approach used here avoids this problem because it only ever reads
- (not writes) the thread-local data. Both reads and writes to rootData
- are done under the lock, so we're free to modify rootData from any thread
- that holds the lock.
*/
etc.