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