Я использую boost :: interprocess :: shared_memory_object между процессами.
Процесс (сервер) создает объект общей памяти, а другие процессы (клиенты) открывают этот объект общей памяти. Но как клиентские процессы могут определить, был ли этот объект общей памяти удален серверным процессом?
Как указывает документация Boost , когда запрашивается удаление общей памяти, она не будет удалена, пока все другие ссылки не прекратят ссылаться на нее. Таким образом, даже если серверный процесс (пытается) удалить объект общей памяти, этот объект общей памяти не удаляется, и, следовательно, другие клиентские процессы не могут знать, был ли он удален или нет.
Мне нужен этот тип удаления-обнаружения из-за кеширования ссылок. Я имею в виду, клиентские процессы хранят ссылку на разделяемую память и используют ее по мере необходимости. Но когда процесс сервера удаляет разделяемую память и воссоздает ее с тем же именем, я просто хочу, чтобы мои клиентские процессы обнаружили это воссоздание и обновили ссылку на вновь созданный объект разделяемой памяти.