eliminate atomics in syslog setlogmask function
authorRich Felker <dalias@aerifal.cx>
Wed, 4 Mar 2015 14:44:43 +0000 (09:44 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 4 Mar 2015 14:44:43 +0000 (09:44 -0500)
src/misc/syslog.c

index b934a68678f9657f7fa18e8c5821be8fc26c80bd..e026f9b4dbb07ee2596fd75406d3254a5f249797 100644 (file)
 #include <errno.h>
 #include <fcntl.h>
 #include "libc.h"
-#include "atomic.h"
 
 static volatile int lock[2];
 static char log_ident[32];
 static int log_opt;
 static int log_facility = LOG_USER;
-static volatile int log_mask = 0xff;
+static int log_mask = 0xff;
 static int log_fd = -1;
 
 int setlogmask(int maskpri)
 {
-       if (maskpri) return a_swap(&log_mask, maskpri);
-       else return log_mask;
+       LOCK(lock);
+       int ret = log_mask;
+       if (maskpri) log_mask = maskpri;
+       UNLOCK(lock);
+       return ret;
 }
 
 static const struct {