
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