Why the default is immutable
Most of what a server reads is decided at start. Decided at start means never written, which means no race.
The one question to ask
How many writers. Zero writers is free, one writer is a queue, many writers is a merge.
Handlers run at the same time. Anything they share has more than one writer, and more than one writer is a decision about who is allowed to write.
About 1 min of reading
Count the writers
Write the shared values
Before you run it, say out loud what it will print. Then open the answer.
Choose from the count
Before you run it, say out loud what it will print. Then open the answer.
Write the choice with the count
Before you run it, say out loud what it will print. Then open the answer.
Most of what a server reads is decided at start. Decided at start means never written, which means no race.
How many writers. Zero writers is free, one writer is a queue, many writers is a merge.
Config is read and never written. A read that cannot be written has no race to lose.
One counter is atomic because one word is enough. A structure is not one word, and the claim stops there.
The lock is held for the length of the work. The work is the thing that decides the wait.
Each one is defined here on this site. Open the entry for the full definition and the other words it points at.