plan9port/src/libthread/stkmmap.c
Russ Cox 8c573cab68 libthread: use mmap to allocate OpenBSD stacks
Should fix faults on OpenBSD.

Fixes #218.
Fixes #226.
2020-01-14 13:58:47 -05:00

26 lines
345 B
C

#include <u.h>
#include <sys/mman.h>
#include "threadimpl.h"
#ifndef MAP_STACK
#define MAP_STACK 0
#endif
void*
_threadstkalloc(int n)
{
void *p;
p = mmap(nil, n, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON|MAP_STACK, -1, 0);
if(p == (void*)-1)
return nil;
return p;
}
void
_threadstkfree(void *v, int n)
{
if(n > 0)
munmap(v, n);
}