Нуждаюсь в ликбезе )
Раньше как то приходилось использовать только в С++ для контроля изменении в объекте класса, а что то в процедурном варианте не соображу как безопасно?
Есть 2 потока декодирования и кодирования, в неком участке кода декодирования мне нужно скопировать память для потока кодирования, понятно что это место нужно защитить мьютексом и хотелось бы это сделать в потоке кодирования, однако как правильно обрабатывать
-
переменную int состояния ошибок в потоках - нужно ли 2 таких переменных (ошибка в любом потоке должна останавливать оба), можно ли писать и читать из разных потоков одновременно без мутексов когда их 2 (каждый либо пишет, либо читает), чтобы не тормозить выполнение?
-
потоки должны ждать друг друга - после декодирования когда скопируется память, после кодирования когда будут готовы новые данные для копирования - получается еще 2 переменных!? каждую тоже нужно защищать мутексом? или как в п.1 раз один поток только пишет, а другой только читает можно без них обойтись?
или вообще какой то спецфический тип мутекса нужен!?
ПС. а то у меня получается 3 или 5 мутексов мне нужно чтоб каждую операцию обрабатывать.