X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fexit%2Fat_quick_exit.c;h=d3ce6522df7dd810ee1014ae84a9ceaa08e66927;hb=0847902ab99065a48f9bd3729b6e676288dfd69e;hp=85c3d26ef4fccd9ba97233e50d3bf4ffdad61425;hpb=b5289fd749bc4d2637610d712f8fe650f214f1d5;p=musl diff --git a/src/exit/at_quick_exit.c b/src/exit/at_quick_exit.c index 85c3d26e..d3ce6522 100644 --- a/src/exit/at_quick_exit.c +++ b/src/exit/at_quick_exit.c @@ -1,11 +1,12 @@ #include #include "libc.h" +#include "lock.h" #define COUNT 32 static void (*funcs[COUNT])(void); static int count; -static int lock[2]; +static volatile int lock[1]; void __funcs_on_quick_exit() { @@ -21,9 +22,10 @@ void __funcs_on_quick_exit() int at_quick_exit(void (*func)(void)) { - if (count == 32) return -1; + int r = 0; LOCK(lock); - funcs[count++] = func; + if (count == 32) r = -1; + else funcs[count++] = func; UNLOCK(lock); - return 0; + return r; }