Boost logo

Boost Users :

Subject: [Boost-users] [Interprocess] create a managed_mapped_file without allocator mutex?
From: Andy Wiese (andyw_at_[hidden])
Date: 2010-03-14 14:33:13


I'm using managed_mapped_file to hold an index for a small property
database.

In various operations of
boost
::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void>, 0ul> the process frequently
blocks on boost::interprocess::interprocess_mutex::lock

I synchronize all access to this file using interprocess mutex
utilities, so write access is restricted to one single-threaded
process at a time. I have looked for a deadlock between my outer mutex
and the allocator's mutex, but I haven't been able to detect any
process blocking on my mutex. It also might be that a process crashes
while holding the allocator mutex,
but in that case I don't know how to flush the allocators mutex (like
I can with my own).

I'm wondering if I need the allocator mutex at all, since I provide
synchronization at a higher level.

Is it possible to create a:
typedef basic_managed_mapped_file< char,rbtree_best_fit< mutex_family
>,iset_index > managed_mapped_file;
That uses some kind of no-op mutex family? Can anyone give me a hint
how to declare such a thing?
Thanks much for any advice,
Andy


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net