remove impossible error case from gethostbyname2_r
[musl] / src / exit / at_quick_exit.c
index 34541ba..e4b5d78 100644 (file)
@@ -1,11 +1,14 @@
 #include <stdlib.h>
 #include "libc.h"
+#include "lock.h"
+#include "fork_impl.h"
 
 #define COUNT 32
 
 static void (*funcs[COUNT])(void);
 static int count;
-static volatile int lock[2];
+static volatile int lock[1];
+volatile int *const __at_quick_exit_lockptr = lock;
 
 void __funcs_on_quick_exit()
 {
@@ -21,9 +24,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;
 }