Boost.Interprocess предлагает следующие типы мьютексов:
#include <boost/interprocess/sync/interprocess_mutex.hpp>
interprocess_mutex: нерекурсивный анонимный мьютекс, который может быть размещен в общей памяти или в файлах с отображением в памяти,
#include <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
interprocess_recursive_mutex: рекурсивный анонимный мьютекс, который может быть размещен в общей памяти или в файлах с отображением в памяти.
#include <boost/interprocess/sync/named_mutex.hpp>
named_mutex: нерекурсивный именованный мьютекс.
#include <boost/interprocess/sync/named_recursive_mutex.hpp>
named_recursive_mutex: рекурсивный именованный мьютекс.
Я предлагаю использовать именованный мьютекс.См документы