projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add missing test binaries to .gitignore
[urcu.git]
/
urcu-static.h
diff --git
a/urcu-static.h
b/urcu-static.h
index f68dd7c8dc1231641d040d6aeebad2a5da56970f..eea39bb0641f8b5d295a46dd4f316761a6e85d21 100644
(file)
--- a/
urcu-static.h
+++ b/
urcu-static.h
@@
-9,7
+9,7
@@
* TO BE INCLUDED ONLY IN LGPL-COMPATIBLE CODE. See urcu.h for linking
* dynamically with the userspace rcu library.
*
* TO BE INCLUDED ONLY IN LGPL-COMPATIBLE CODE. See urcu.h for linking
* dynamically with the userspace rcu library.
*
- * 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
@@
-222,7
+222,7
@@
struct rcu_reader {
unsigned long ctr;
char need_mb;
/* Data used for registry */
unsigned long ctr;
char need_mb;
/* Data used for registry */
- struct list_head
head
__attribute__((aligned(CACHE_LINE_SIZE)));
+ struct list_head
node
__attribute__((aligned(CACHE_LINE_SIZE)));
pthread_t tid;
};
pthread_t tid;
};
@@
-259,6
+259,7
@@
static inline void _rcu_read_lock(void)
{
unsigned long tmp;
{
unsigned long tmp;
+ barrier(); /* Ensure the compiler does not reorder us with mutex */
tmp = rcu_reader.ctr;
/*
* rcu_gp_ctr is
tmp = rcu_reader.ctr;
/*
* rcu_gp_ctr is
@@
-294,9
+295,10
@@
static inline void _rcu_read_unlock(void)
} else {
_STORE_SHARED(rcu_reader.ctr, rcu_reader.ctr - RCU_GP_COUNT);
}
} else {
_STORE_SHARED(rcu_reader.ctr, rcu_reader.ctr - RCU_GP_COUNT);
}
+ barrier(); /* Ensure the compiler does not reorder us with mutex */
}
}
-#ifdef __cplusplus
+#ifdef __cplusplus
}
#endif
}
#endif
This page took
0.024263 seconds
and
4
git commands to generate.