summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2012-04-08 16:29:28 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2012-04-08 16:29:28 -0400
commite926ef3ae0ea08fc24af567b0b2c74f083cdb64d (patch)
treef33a008b46bba782f5b27ac9c2777a145ef1e759 /src
parentc0882be96431ac1572e17f9589dbc2f031bd9c0e (diff)
Optimize code from last changeset a bit
Diffstat (limited to 'src')
-rw-r--r--src/c/urweb.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/c/urweb.c b/src/c/urweb.c
index 9f318c95..54ca5927 100644
--- a/src/c/urweb.c
+++ b/src/c/urweb.c
@@ -229,17 +229,18 @@ static int pruning_thread_initialized = 0;
static client *find_client(unsigned id) {
client *c;
+ int i_am_pruner = pruning_thread_initialized && pthread_equal(pruning_thread, pthread_self());
- if (!pruning_thread_initialized || !pthread_equal(pruning_thread, pthread_self())) pthread_mutex_lock(&clients_mutex);
+ if (!i_am_pruner) pthread_mutex_lock(&clients_mutex);
if (id >= n_clients) {
- if (!pruning_thread_initialized || !pthread_equal(pruning_thread, pthread_self())) pthread_mutex_unlock(&clients_mutex);
+ if (!i_am_pruner) pthread_mutex_unlock(&clients_mutex);
return NULL;
}
c = clients[id];
- if (!pruning_thread_initialized || !pthread_equal(pruning_thread, pthread_self())) pthread_mutex_unlock(&clients_mutex);
+ if (!i_am_pruner) pthread_mutex_unlock(&clients_mutex);
return c;
}