From: Jens Gustedt <Jens.Gustedt@inria.fr>
To: musl@lists.openwall.com
Subject: [PATCH 3/7] revise the definition of multiple basic locks in the code
Date: Wed, 3 Jan 2018 14:17:12 +0100 [thread overview]
Message-ID: <46df4a4709781c5d6fa47e0b15e52c2927e25e22.1514985618.git.Jens.Gustedt@inria.fr> (raw)
In-Reply-To: <cover.1514985618.git.Jens.Gustedt@inria.fr>
In all cases this is just a change from two volatile int to one.
---
src/dirent/__dirent.h | 2 +-
src/exit/at_quick_exit.c | 2 +-
src/exit/atexit.c | 2 +-
src/internal/pthread_impl.h | 4 ++--
src/locale/dcngettext.c | 2 +-
src/locale/locale_map.c | 2 +-
src/locale/setlocale.c | 2 +-
src/malloc/lite_malloc.c | 2 +-
src/misc/syslog.c | 2 +-
src/prng/random.c | 2 +-
src/stdio/ofl.c | 2 +-
src/thread/pthread_atfork.c | 2 +-
src/thread/sem_open.c | 2 +-
src/thread/synccall.c | 2 +-
src/time/__tz.c | 2 +-
15 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/dirent/__dirent.h b/src/dirent/__dirent.h
index 32871baf..101b0368 100644
--- a/src/dirent/__dirent.h
+++ b/src/dirent/__dirent.h
@@ -4,6 +4,6 @@ struct __dirstream
off_t tell;
int buf_pos;
int buf_end;
- volatile int lock[2];
+ volatile int lock[1];
char buf[2048];
};
diff --git a/src/exit/at_quick_exit.c b/src/exit/at_quick_exit.c
index ac28dfd9..4079b242 100644
--- a/src/exit/at_quick_exit.c
+++ b/src/exit/at_quick_exit.c
@@ -5,7 +5,7 @@
static void (*funcs[COUNT])(void);
static int count;
-static volatile int lock[2];
+static volatile int lock[1];
void __funcs_on_quick_exit()
{
diff --git a/src/exit/atexit.c b/src/exit/atexit.c
index 2b58b8bb..cd3b0a64 100644
--- a/src/exit/atexit.c
+++ b/src/exit/atexit.c
@@ -13,7 +13,7 @@ static struct fl
} builtin, *head;
static int slot;
-static volatile int lock[2];
+static volatile int lock[1];
void __funcs_on_exit()
{
diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h
index 602d6f56..f0b2c20c 100644
--- a/src/internal/pthread_impl.h
+++ b/src/internal/pthread_impl.h
@@ -39,8 +39,8 @@ struct pthread {
int unblock_cancel;
volatile int timer_id;
locale_t locale;
- volatile int killlock[2];
- volatile int exitlock[2];
+ volatile int killlock[1];
+ volatile int exitlock[1];
volatile int startlock[2];
unsigned long sigmask[_NSIG/8/sizeof(long)];
char *dlerror_buf;
diff --git a/src/locale/dcngettext.c b/src/locale/dcngettext.c
index b79b7010..d8af9603 100644
--- a/src/locale/dcngettext.c
+++ b/src/locale/dcngettext.c
@@ -34,7 +34,7 @@ static char *gettextdir(const char *domainname, size_t *dirlen)
char *bindtextdomain(const char *domainname, const char *dirname)
{
- static volatile int lock[2];
+ static volatile int lock[1];
struct binding *p, *q;
if (!domainname) return 0;
diff --git a/src/locale/locale_map.c b/src/locale/locale_map.c
index 188fcf39..79542310 100644
--- a/src/locale/locale_map.c
+++ b/src/locale/locale_map.c
@@ -26,7 +26,7 @@ static const char envvars[][12] = {
const struct __locale_map *__get_locale(int cat, const char *val)
{
- static volatile int lock[2];
+ static volatile int lock[1];
static void *volatile loc_head;
const struct __locale_map *p;
struct __locale_map *new = 0;
diff --git a/src/locale/setlocale.c b/src/locale/setlocale.c
index 623660cc..40bc7ece 100644
--- a/src/locale/setlocale.c
+++ b/src/locale/setlocale.c
@@ -21,7 +21,7 @@ char *__strchrnul(const char *, int);
char *setlocale(int cat, const char *name)
{
- static volatile int lock[2];
+ static volatile int lock[1];
if ((unsigned)cat > LC_ALL) return 0;
diff --git a/src/malloc/lite_malloc.c b/src/malloc/lite_malloc.c
index a7e4a9f7..701f60b4 100644
--- a/src/malloc/lite_malloc.c
+++ b/src/malloc/lite_malloc.c
@@ -11,7 +11,7 @@ void *__expand_heap(size_t *);
static void *__simple_malloc(size_t n)
{
static char *cur, *end;
- static volatile int lock[2];
+ static volatile int lock[1];
size_t align=1, pad;
void *p;
diff --git a/src/misc/syslog.c b/src/misc/syslog.c
index 9dd1ddb5..60e9020f 100644
--- a/src/misc/syslog.c
+++ b/src/misc/syslog.c
@@ -11,7 +11,7 @@
#include <fcntl.h>
#include "libc.h"
-static volatile int lock[2];
+static volatile int lock[1];
static char log_ident[32];
static int log_opt;
static int log_facility = LOG_USER;
diff --git a/src/prng/random.c b/src/prng/random.c
index 7d557d70..13a5e6df 100644
--- a/src/prng/random.c
+++ b/src/prng/random.c
@@ -22,7 +22,7 @@ static int n = 31;
static int i = 3;
static int j = 0;
static uint32_t *x = init+1;
-static volatile int lock[2];
+static volatile int lock[1];
static uint32_t lcg31(uint32_t x) {
return (1103515245*x + 12345) & 0x7fffffff;
diff --git a/src/stdio/ofl.c b/src/stdio/ofl.c
index b143999c..0e3602aa 100644
--- a/src/stdio/ofl.c
+++ b/src/stdio/ofl.c
@@ -2,7 +2,7 @@
#include "libc.h"
static FILE *ofl_head;
-static volatile int ofl_lock[2];
+static volatile int ofl_lock[1];
FILE **__ofl_lock()
{
diff --git a/src/thread/pthread_atfork.c b/src/thread/pthread_atfork.c
index a40d7f63..c6f77b3f 100644
--- a/src/thread/pthread_atfork.c
+++ b/src/thread/pthread_atfork.c
@@ -8,7 +8,7 @@ static struct atfork_funcs {
struct atfork_funcs *prev, *next;
} *funcs;
-static volatile int lock[2];
+static volatile int lock[1];
void __fork_handler(int who)
{
diff --git a/src/thread/sem_open.c b/src/thread/sem_open.c
index fda0acd3..dc0279e8 100644
--- a/src/thread/sem_open.c
+++ b/src/thread/sem_open.c
@@ -20,7 +20,7 @@ static struct {
sem_t *sem;
int refcnt;
} *semtab;
-static volatile int lock[2];
+static volatile int lock[1];
#define FLAGS (O_RDWR|O_NOFOLLOW|O_CLOEXEC|O_NONBLOCK)
diff --git a/src/thread/synccall.c b/src/thread/synccall.c
index f6813576..ba2f258e 100644
--- a/src/thread/synccall.c
+++ b/src/thread/synccall.c
@@ -14,7 +14,7 @@ static struct chain {
sem_t target_sem, caller_sem;
} *volatile head;
-static volatile int synccall_lock[2];
+static volatile int synccall_lock[1];
static volatile int target_tid;
static void (*callback)(void *), *context;
static volatile int dummy = 0;
diff --git a/src/time/__tz.c b/src/time/__tz.c
index 8cc96032..1dbb0b8f 100644
--- a/src/time/__tz.c
+++ b/src/time/__tz.c
@@ -27,7 +27,7 @@ static char old_tz_buf[32];
static char *old_tz = old_tz_buf;
static size_t old_tz_size = sizeof old_tz_buf;
-static volatile int lock[2];
+static volatile int lock[1];
static int getint(const char **p)
{
--
2.15.1
prev parent reply other threads:[~2018-01-03 13:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-03 13:20 [PATCH 0/7] V3 of the new lock algorithm Jens Gustedt
2018-01-03 13:17 ` [PATCH 4/7] separate the fast parts of __lock and __unlock into a .h file that may be used by other TU Jens Gustedt
2018-01-09 17:41 ` Rich Felker
2018-01-03 13:17 ` [PATCH 6/7] implement __unlock_requeue Jens Gustedt
2018-01-03 13:17 ` [PATCH 1/7] a new lock algorithm with lock value and congestion count in the same atomic int Jens Gustedt
2018-01-03 13:17 ` [PATCH 7/7] implement the local lock for condition variables with the new lock feature Jens Gustedt
2018-01-03 13:17 ` [PATCH 2/7] consistently use the LOCK an UNLOCK macros Jens Gustedt
2018-01-03 13:17 ` [PATCH 5/7] use the new lock algorithm for malloc Jens Gustedt
2018-01-09 17:42 ` Rich Felker
2018-01-09 18:58 ` Jens Gustedt
2018-01-09 19:26 ` Rich Felker
2018-09-18 19:23 ` Rich Felker
2018-01-03 13:17 ` Jens Gustedt [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46df4a4709781c5d6fa47e0b15e52c2927e25e22.1514985618.git.Jens.Gustedt@inria.fr \
--to=jens.gustedt@inria.fr \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).