Summary: The portability implementation of `mmap` for Windows doesn't currently support anonymous shared allocations, as they are non-trivial to manage, and the places this is being used doesn't actually need the memory to be allocated as shared, so allocate it as private instead.
Reviewed By: yfeldblum
Differential Revision:
D3671495
fbshipit-source-id:
e74d4fd925363fef16c1bf8445da1ff32bf8266d
T *allocate(size_t n) {
void *p = mmap(nullptr, n * sizeof(T), PROT_READ | PROT_WRITE,
- MAP_SHARED | MAP_ANONYMOUS, -1, 0);
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (p == MAP_FAILED) throw std::bad_alloc();
return (T *)p;
}