Fix mmap flags on linux
This commit is contained in:
parent
2bd612fd19
commit
839c740cb1
@ -18,6 +18,8 @@ import tanya.memory.allocator;
|
|||||||
|
|
||||||
version (Posix)
|
version (Posix)
|
||||||
{
|
{
|
||||||
|
import core.sys.posix.sys.mman : PROT_READ, PROT_WRITE, MAP_PRIVATE,
|
||||||
|
MAP_ANON, MAP_FAILED;
|
||||||
import core.sys.posix.unistd;
|
import core.sys.posix.unistd;
|
||||||
|
|
||||||
extern (C)
|
extern (C)
|
||||||
@ -35,11 +37,11 @@ version (Posix)
|
|||||||
{
|
{
|
||||||
void* p = mmap(null,
|
void* p = mmap(null,
|
||||||
len,
|
len,
|
||||||
0x01 | 0x02, // PROT_READ | PROT_WRITE
|
PROT_READ | PROT_WRITE,
|
||||||
0x0002 | 0x1000, // MAP_PRIVATE | MAP_ANON
|
MAP_PRIVATE | MAP_ANON,
|
||||||
-1,
|
-1,
|
||||||
0);
|
0);
|
||||||
return p is (cast(void*) -1) ? null : p;
|
return p is MAP_FAILED ? null : p;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool unmapMemory(shared void* addr, const size_t len)
|
private bool unmapMemory(shared void* addr, const size_t len)
|
||||||
@ -311,7 +313,7 @@ final class MmapPool : Allocator
|
|||||||
* Returns: $(D_KEYWORD true) if successful, $(D_KEYWORD false) otherwise.
|
* Returns: $(D_KEYWORD true) if successful, $(D_KEYWORD false) otherwise.
|
||||||
*/
|
*/
|
||||||
bool reallocateInPlace(ref void[] p, const size_t size)
|
bool reallocateInPlace(ref void[] p, const size_t size)
|
||||||
pure shared nothrow @nogc
|
shared pure nothrow @nogc
|
||||||
{
|
{
|
||||||
if (p is null || size == 0)
|
if (p is null || size == 0)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user