It is common to have a critical section which protects against
concurrent writes to a variable or collection of variables.
But if you protect a write with a critical section,
you may also want to protect the read,
because the read might race against the write.
Adam Rosenfield
shared his experience with this issue
in a comment from a few ...