как работает многопоточность в с++
в нескольких параллельных процессах
Вы уж как-то определитесь кто вас интересует: потоки или процессы.
В любом случае вам нужны
блокировки для синхронизации.
Их есть большое разнообразие ... на любой вкус ;-)
Если вас интересуют
потоки, то любого вида примитивы синхронизации вам подходят ... начиная с простейшего мютекса.
Если вас интересуют
процессы, то вам нужны примитивы синхронизации с областью видимости операционной системы, это могут быть: блокировки на файлах, pipe, именованные семафоры и т.д.
Пытаться засинхронизироваться на простых переменных (как у вас safe_mode ... и любые изыски вокруг) - бессмысленно.