projects
/
c11tester.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cyclegraph: flag cycles for reflexive edges
[c11tester.git]
/
action.cc
diff --git
a/action.cc
b/action.cc
index c6504cd388d0f44f6ec72c038d36996b79fad882..b4f4e434934cfd0d68adf06ba54bd2b5ada102a0 100644
(file)
--- a/
action.cc
+++ b/
action.cc
@@
-184,7
+184,7
@@
void ModelAction::process_rmw(ModelAction * act) {
* @param act is the action to consider exploring a reordering.
* @return tells whether we have to explore a reordering.
*/
* @param act is the action to consider exploring a reordering.
* @return tells whether we have to explore a reordering.
*/
-bool ModelAction::
is_synchronizing
(const ModelAction *act) const
+bool ModelAction::
could_synchronize_with
(const ModelAction *act) const
{
//Same thread can't be reordered
if (same_thread(act))
{
//Same thread can't be reordered
if (same_thread(act))
@@
-196,14
+196,12
@@
bool ModelAction::is_synchronizing(const ModelAction *act) const
// Explore interleavings of seqcst writes to guarantee total order
// of seq_cst operations that don't commute
// Explore interleavings of seqcst writes to guarantee total order
// of seq_cst operations that don't commute
- if (
is_write() && is_seqcst() && act->is_write
() && act->is_seqcst())
+ if (
(is_write() || act->is_write()) && is_seqcst
() && act->is_seqcst())
return true;
// Explore synchronizing read/write pairs
if (is_read() && is_acquire() && act->is_write() && act->is_release())
return true;
return true;
// Explore synchronizing read/write pairs
if (is_read() && is_acquire() && act->is_write() && act->is_release())
return true;
- if (is_write() && is_release() && act->is_read() && act->is_acquire())
- return true;
// Otherwise handle by reads_from relation
return false;
// Otherwise handle by reads_from relation
return false;