projects
/
userspace-rcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update email address from @polymtl.ca to @efficios.com
[userspace-rcu.git]
/
urcu-bp.c
diff --git
a/urcu-bp.c
b/urcu-bp.c
index fc6eedf56a545dde91e1fa8b96456af5bc593158..61d42fa20188d6b12ab3a560cede576828a77099 100644
(file)
--- a/
urcu-bp.c
+++ b/
urcu-bp.c
@@
-3,7
+3,7
@@
*
* Userspace RCU library, "bulletproof" version.
*
*
* Userspace RCU library, "bulletproof" version.
*
- * Copyright (c) 2009 Mathieu Desnoyers <mathieu.desnoyers@
polymtl.ca
>
+ * Copyright (c) 2009 Mathieu Desnoyers <mathieu.desnoyers@
efficios.com
>
* Copyright (c) 2009 Paul E. McKenney, IBM Corporation.
*
* This library is free software; you can redistribute it and/or
* Copyright (c) 2009 Paul E. McKenney, IBM Corporation.
*
* This library is free software; you can redistribute it and/or
@@
-122,7
+122,7
@@
void update_counter_and_wait(void)
int wait_loops = 0;
struct rcu_reader *index, *tmp;
int wait_loops = 0;
struct rcu_reader *index, *tmp;
- /* Switch parity:
1 -> 0, 0 -> 1
*/
+ /* Switch parity:
0 -> 1, 1 -> 0
*/
STORE_SHARED(rcu_gp_ctr, rcu_gp_ctr ^ RCU_GP_CTR_PHASE);
/*
STORE_SHARED(rcu_gp_ctr, rcu_gp_ctr ^ RCU_GP_CTR_PHASE);
/*
@@
-144,9
+144,9
@@
void update_counter_and_wait(void)
*/
for (;;) {
wait_loops++;
*/
for (;;) {
wait_loops++;
- list_for_each_entry_safe(index, tmp, ®istry,
head
) {
+ list_for_each_entry_safe(index, tmp, ®istry,
node
) {
if (!rcu_old_gp_ongoing(&index->ctr))
if (!rcu_old_gp_ongoing(&index->ctr))
- list_move(&index->
head
, &qsreaders);
+ list_move(&index->
node
, &qsreaders);
}
if (list_empty(®istry)) {
}
if (list_empty(®istry)) {
@@
-279,7
+279,7
@@
static void add_thread(void)
/* Add to registry */
rcu_reader_reg->tid = pthread_self();
assert(rcu_reader_reg->ctr == 0);
/* Add to registry */
rcu_reader_reg->tid = pthread_self();
assert(rcu_reader_reg->ctr == 0);
- list_add(&rcu_reader_reg->
head
, ®istry);
+ list_add(&rcu_reader_reg->
node
, ®istry);
rcu_reader = rcu_reader_reg;
}
rcu_reader = rcu_reader_reg;
}
@@
-299,7
+299,8
@@
static void rcu_gc_registry(void)
ret = pthread_kill(tid, 0);
assert(ret != EINVAL);
if (ret == ESRCH) {
ret = pthread_kill(tid, 0);
assert(ret != EINVAL);
if (ret == ESRCH) {
- list_del(&rcu_reader_reg->head);
+ list_del(&rcu_reader_reg->node);
+ rcu_reader_reg->ctr = 0;
rcu_reader_reg->alloc = 0;
registry_arena.used -= sizeof(struct rcu_reader);
}
rcu_reader_reg->alloc = 0;
registry_arena.used -= sizeof(struct rcu_reader);
}
This page took
0.028245 seconds
and
4
git commands to generate.