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