What does a sync.Mutex block while it is locked?
sync.Mutex
all goroutines
any other call to lock that Mutex
Mutex
any reads or writes of the variable it is locking
any writes to the variable it is locking