Why does the following example with condition variables as synchronization primitives have a data race? Golang documentation for the condition variables states the following: