Boost logo

Boost :

Subject: Re: [boost] [Interprocess] Experimental Win32 Mutexes
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-11-09 20:21:05


Le 09/11/12 19:05, Brink, Robert (GE Aviation, US) a écrit :
> I'm running Boost 1.52 on Windows 7, Visual Studio 2010.
>
> I noticed in sync\interprocess_mutex.hpp there is a windows mutex implementation that is hidden behind the BOOST_INTERPROCESS_FORCE_GENERIC_EMULATION macro. The comment indicates that it is "Experimental".
>
> Could someone shed some light on what is Experimental about it and what the general plans for this feature are?
>
> I was having a problem with many processes all spin-locking when allocating shared memory that I traced down to the old mutex implementation for shared memory. I enabled the experimental feature in my local build ( by commenting out the above macro in the detail\workaround.hpp file) and it seems to fix my problems. My performance is much improved. But what are my risks for using this implementation? I'm a little nervous to depend on something marked as "Experimental".
>
>
Hi,

in
http://www.boost.org/doc/libs/1_52_0/doc/html/interprocess/acknowledgements_notes.html#interprocess.acknowledgements_notes.release_notes.release_notes_boost_1_37_00
it is included

        Boost 1.37 Release

  * Added |BOOST_INTERPROCESS_FORCE_GENERIC_EMULATION| macro option to
    force the use of generic emulation code for process-shared
    synchronization primitives instead of native POSIX functions.

As the documentation says this macro is Posix specific (for the user)
and as the macro is defined by default on windows I guess that there are
some bugs in the windows specific implementation.

Ion, I think that the documentation should include this information
somewhere else the release notes.

HTH,
Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk