model: bugfix - sleep sets are NOT directly compatible with DPOR
authorBrian Norris <banorris@uci.edu>
Thu, 17 Jan 2013 01:42:57 +0000 (17:42 -0800)
committerBrian Norris <banorris@uci.edu>
Thu, 17 Jan 2013 02:37:30 +0000 (18:37 -0800)
We failed to incorporate changes from the POPL'05 DPOR paper's addendum,
preventing us from seeing all behaviors in some test programs. This
fixes that.

model.cc

index 9c3488435e02d0ec592b7381b9e207448c494ce1..e6df37f8372949f610057599181402ddf673ce84 100644 (file)
--- a/model.cc
+++ b/model.cc
@@ -614,7 +614,7 @@ void ModelChecker::set_backtracking(ModelAction *act)
        Node *node = prev->get_node()->get_parent();
 
        int low_tid, high_tid;
-       if (node->is_enabled(t)) {
+       if (node->enabled_status(t->get_id()) == THREAD_ENABLED) {
                low_tid = id_to_int(act->get_tid());
                high_tid = low_tid + 1;
        } else {