]>
git.proxmox.com Git - wasi-libc.git/blob - libc-top-half/musl/src/thread/pthread_atfork.c
5 static struct atfork_funcs
{
9 struct atfork_funcs
*prev
, *next
;
12 static volatile int lock
[1];
14 void __fork_handler(int who
)
16 struct atfork_funcs
*p
;
20 for (p
=funcs
; p
; p
= p
->next
) {
21 if (p
->prepare
) p
->prepare();
25 for (p
=funcs
; p
; p
= p
->prev
) {
26 if (!who
&& p
->parent
) p
->parent();
27 else if (who
&& p
->child
) p
->child();
34 int pthread_atfork(void (*prepare
)(void), void (*parent
)(void), void (*child
)(void))
36 struct atfork_funcs
*new = malloc(sizeof *new);
42 new->prepare
= prepare
;
45 if (funcs
) funcs
->prev
= new;