Add fallback for old platforms w/out MAP_ANON.

This commit is contained in:
Darren Tucker 2022-11-23 13:18:54 +11:00
parent 6b9bbbfe8b
commit 15a01cf15f
No known key found for this signature in database

View File

@ -63,6 +63,7 @@ _rs_forkdetect(void)
static inline int
_rs_allocate(struct _rs **rsp, struct _rsx **rsxp)
{
#if defined(MAP_ANON) && defined(MAP_PRIVATE)
if ((*rsp = mmap(NULL, sizeof(**rsp), PROT_READ|PROT_WRITE,
MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED)
return (-1);
@ -73,6 +74,15 @@ _rs_allocate(struct _rs **rsp, struct _rsx **rsxp)
*rsp = NULL;
return (-1);
}
#else
if ((*rsp = malloc(sizeof(**rsp))) == NULL)
return (-1);
if ((*rsxp = malloc(sizeof(**rsxp))) == NULL) {
free(*rsp);
*rsp = NULL;
return (-1);
}
#endif
_ARC4_ATFORK(_rs_forkhandler);
return (0);