projects
/
cdsspec-compiler.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fefe267
)
fix rcu
author
Peizhao Ou
<peizhaoo@uci.edu>
Sun, 23 Mar 2014 22:17:46 +0000
(15:17 -0700)
committer
Peizhao Ou
<peizhaoo@uci.edu>
Sun, 23 Mar 2014 22:17:46 +0000
(15:17 -0700)
benchmark/read-copy-update/rcu.cc
patch
|
blob
|
history
diff --git
a/benchmark/read-copy-update/rcu.cc
b/benchmark/read-copy-update/rcu.cc
index 3d6792f78399c13f7517a9ccdc0d8caa78fc65d9..e0edc4e0a1cdc4ffbbc83c6099ce6c0c57cbb169 100644
(file)
--- a/
benchmark/read-copy-update/rcu.cc
+++ b/
benchmark/read-copy-update/rcu.cc
@@
-56,7
+56,7
@@
atomic<Data*> data;
*/
Data* read() {
Data *res = data.load(memory_order_acquire);
*/
Data* read() {
Data *res = data.load(memory_order_acquire);
- load_32(&res->data1);
+
//
load_32(&res->data1);
/**
@Begin
@Commit_point_define_check: true
/**
@Begin
@Commit_point_define_check: true
@@
-78,16
+78,16
@@
Data* read() {
@End
*/
Data* write(int d1, int d2, int d3) {
@End
*/
Data* write(int d1, int d2, int d3) {
- Data *prev = data.load(memory_order_acquire);
bool succ = false;
Data *tmp = (Data*) malloc(sizeof(Data));
do {
bool succ = false;
Data *tmp = (Data*) malloc(sizeof(Data));
do {
- store_32(&tmp->data1, prev->data1 + d1);
- //tmp->data1 = prev->data1 + d1;
+ Data *prev = data.load(memory_order_acquire);
+ //store_32(&tmp->data1, prev->data1 + d1);
+ tmp->data1 = prev->data1 + d1;
tmp->data2 = prev->data2 + d2;
tmp->data3 = prev->data3 + d3;
succ = data.compare_exchange_strong(prev, tmp,
tmp->data2 = prev->data2 + d2;
tmp->data3 = prev->data3 + d3;
succ = data.compare_exchange_strong(prev, tmp,
- memory_order_acq_rel, memory_order_
acquire
);
+ memory_order_acq_rel, memory_order_
relaxed
);
/**
@Begin
@Commit_point_define_check: succ
/**
@Begin
@Commit_point_define_check: succ