projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Turn *_REMOTE into *_SHARED
[urcu.git]
/
urcu.c
diff --git
a/urcu.c
b/urcu.c
index 8cbdef9e66b386c0b6ac175b2029e194bfe3b43f..8cb32a117bb065405ca3f45e0224dfe8fbebbf5d 100644
(file)
--- a/
urcu.c
+++ b/
urcu.c
@@
-105,7
+105,7
@@
static void force_mb_single_thread(pthread_t tid)
* Wait for sighandler (and thus mb()) to execute on every thread.
* BUSY-LOOP.
*/
* Wait for sighandler (and thus mb()) to execute on every thread.
* BUSY-LOOP.
*/
- while (LOAD_
REMOTE
(sig_done) < 1)
+ while (LOAD_
SHARED
(sig_done) < 1)
cpu_relax();
smp_mb(); /* read sig_done before ending the barrier */
}
cpu_relax();
smp_mb(); /* read sig_done before ending the barrier */
}
@@
-134,7
+134,7
@@
static void force_mb_all_threads(void)
* Wait for sighandler (and thus mb()) to execute on every thread.
* BUSY-LOOP.
*/
* Wait for sighandler (and thus mb()) to execute on every thread.
* BUSY-LOOP.
*/
- while (LOAD_
REMOTE
(sig_done) < num_readers)
+ while (LOAD_
SHARED
(sig_done) < num_readers)
cpu_relax();
smp_mb(); /* read sig_done before ending the barrier */
}
cpu_relax();
smp_mb(); /* read sig_done before ending the barrier */
}
@@
-159,6
+159,8
@@
void wait_for_quiescent_state(void)
if (wait_loops++ == KICK_READER_LOOPS) {
force_mb_single_thread(index->tid);
wait_loops = 0;
if (wait_loops++ == KICK_READER_LOOPS) {
force_mb_single_thread(index->tid);
wait_loops = 0;
+ } else {
+ cpu_relax();
}
}
}
}
}
}
This page took
0.033541 seconds
and
4
git commands to generate.