projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
model: disabled threads are "future ordered"
[model-checker.git]
/
model.cc
diff --git
a/model.cc
b/model.cc
index c3f6372517d591c5016cb91127adf36ae8fadb36..6eaf65606b6fbfb96f79946836bfae5da2db7b2c 100644
(file)
--- a/
model.cc
+++ b/
model.cc
@@
-207,7
+207,7
@@
bool ModelChecker::next_execution()
num_feasible_executions++;
}
num_feasible_executions++;
}
- DEBUG("Number of acquires waiting on pending release sequences: %
l
u\n",
+ DEBUG("Number of acquires waiting on pending release sequences: %
z
u\n",
pending_rel_seqs->size());
if (isfinalfeasible() || DBG_ENABLED())
pending_rel_seqs->size());
if (isfinalfeasible() || DBG_ENABLED())
@@
-1258,8
+1258,10
@@
bool ModelChecker::release_seq_heads(const ModelAction *rf,
bool future_ordered = false;
ModelAction *last = get_last_action(int_to_id(i));
bool future_ordered = false;
ModelAction *last = get_last_action(int_to_id(i));
- if (last && (rf->happens_before(last) ||
- get_thread(int_to_id(i))->is_complete()))
+ Thread *th = get_thread(int_to_id(i));
+ if ((last && rf->happens_before(last)) ||
+ !scheduler->is_enabled(th) ||
+ th->is_complete())
future_ordered = true;
for (rit = list->rbegin(); rit != list->rend(); rit++) {
future_ordered = true;
for (rit = list->rbegin(); rit != list->rend(); rit++) {