Boost logo

Boost :

Subject: Re: [boost] [interprocess] Platform-specific flags for mapped_region
From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2013-02-12 03:52:00


El 12/02/2013 8:52, Andrey Semashev escribió:
> Hi,
>
> I wanted to try using Linux huge pages in my application, which uses
> Boost.Interprocess currently for interprocess communication. However
> there seems to be no way to pass MAP_HUGETLB flag to mmap in the
> interface of mapped_region.
>
> I understand that this is a platform-specific option, so probably it
> would be best to just add an opaque unsigned int flags parameter to
> the mapped_region constructor with the default value of 0. Or is there
> a better way of doing this?

That's a good start. I guess we could define a platform-defined
map_flags_t type in Interprocess. For unix systems a "int", for windows
systems "unsigned long" (DWORD). That parameter could be passed as the
new last default parameter initialized to zero, say "extra_map_flags".
That flag will be OR-ed with internally produced flag before calling
mmap or MapViewOfFileEx. Would this be good enough?

> I'll create a ticket for this feature, but I wanted to know if the
> general idea of this extension is welcome.

Yes, please. Propagating this support to higher level abstractions, like
managed_shared_memory, is a bit more complicated, but let's not add it
if still there is no demand for that.

Best,

Ion


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