Задача из области gamedev.
Есть сервер, который шлет через Message Queues обновления карты процессам-клиентам
(на каждый процесс - отдельная очередь с идентификатором через ftok()).
Среди обновлений карты рассматривается событие лишь одного типа -
с карты исчез объект. При этом, клиентам приходит соответствующее
сообщение с кодом REMOVE_OBJECT. После этого клиентам следует сменить
один байт карты (так как каждый объект занимает один байт).
Обработка (прием) этих сообщений выполянется в каждом клиенте - одной нитью (pthread),
и используется двумя другими нитями (обработка действий игрока и отображение карты).
Как сделать, чтобы вторая и третья нити (которые используют измененную карту),
всегда использовали актуальные значения карты?
Карта типа unsigned char[] изменяется за один раз (одно сообщение) - на один байт (x,y).
P.S. Когда-то при программировании (в 90-е) годы, помню, использовали
префикс volatile. Можно ли его применить в данном случае к массиву map[], и - нужно ли?
Блокировки через mutex, я там понимаю, тоже здесь - бессмысленны?