mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2025-01-11 03:21:53 +00:00
No memory unmapping when shutting down
All the memory is just freed implicitly on exit, no need for page-by-page unmapping.
This commit is contained in:
parent
b2bac7ae91
commit
38278d94ba
@ -46,6 +46,8 @@ alloc_sys_page(void)
|
|||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern int shutting_down; /* Shutdown requested. */
|
||||||
|
|
||||||
void *
|
void *
|
||||||
alloc_page(void)
|
alloc_page(void)
|
||||||
{
|
{
|
||||||
@ -58,7 +60,7 @@ alloc_page(void)
|
|||||||
|
|
||||||
node *n = HEAD(fp->list);
|
node *n = HEAD(fp->list);
|
||||||
rem_node(n);
|
rem_node(n);
|
||||||
if (--fp->cnt < fp->min)
|
if (!shutting_down && (--fp->cnt < fp->min))
|
||||||
ev_send(&global_work_list, fp->cleanup);
|
ev_send(&global_work_list, fp->cleanup);
|
||||||
|
|
||||||
void *ptr = n - FP_NODE_OFFSET;
|
void *ptr = n - FP_NODE_OFFSET;
|
||||||
@ -87,7 +89,7 @@ free_page(void *ptr)
|
|||||||
|
|
||||||
memset(n, 0, sizeof(node));
|
memset(n, 0, sizeof(node));
|
||||||
add_tail(&fp->list, n);
|
add_tail(&fp->list, n);
|
||||||
if (++fp->cnt > fp->max)
|
if (!shutting_down && (++fp->cnt > fp->max))
|
||||||
ev_send(&global_work_list, fp->cleanup);
|
ev_send(&global_work_list, fp->cleanup);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -151,7 +153,7 @@ cleanup_pages(void *data)
|
|||||||
|
|
||||||
birdloop_leave(loop);
|
birdloop_leave(loop);
|
||||||
|
|
||||||
if (GFP->cnt > GFP->max)
|
if (!shutting_down && (GFP->cnt > GFP->max))
|
||||||
ev_send(&global_work_list, GFP->cleanup);
|
ev_send(&global_work_list, GFP->cleanup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user