I am reading about condition variables in Effective Modern C++ by Scott Meyers book below is text.
std::condition_variable cv
std::mutex m
T1 (detecting task)
...
cv.notify_one();
T2 (reacting task)
...
{
std::unique_lock<std::mutex> lk(m);
cv.wait(lk);
...
}
Here author mentions as below
Mutexs are used to control access to shared data, but it's entirely possible that the detecting and reacting tasks have no need for such mediation. For example, the detecting task might be responsible for initializing a global data structure, then turning it over to reacting task for use. If the detecting task never access the data structure after initialzing it, and if the reacting task never access it before the detecting task indicates that it's ready, the two tasks will stay out of each other's way through program logic. There will be no need for mutex.
On above text I have difficulty in understanding
What does author mean by " two tasks will stay out of each other's way through program logic" ?
What does author mean by no need for mutex?