Merge branch 'master' of ssh://demsky.eecs.uci.edu/home/git/model-checker
authorBrian Demsky <bdemsky@uci.edu>
Sat, 3 Nov 2012 05:14:17 +0000 (22:14 -0700)
committerBrian Demsky <bdemsky@uci.edu>
Sat, 3 Nov 2012 05:14:17 +0000 (22:14 -0700)
1  2 
model.cc

diff --combined model.cc
index 0fb315e24ce5b4a8e0c5db6d3c15516080f3e10e,f67b552dcd74ce3db332c2b157cc2515d600072f..09e6b9da3150ddc88de4cc4b8ce363725cc493f3
+++ b/model.cc
@@@ -218,8 -218,7 +218,8 @@@ void ModelChecker::execute_sleep_set() 
        for(unsigned int i=0;i<get_num_threads();i++) {
                thread_id_t tid=int_to_id(i);
                Thread *thr=get_thread(tid);
 -              if ( scheduler->get_enabled(thr) == THREAD_SLEEP_SET ) {
 +              if ( scheduler->get_enabled(thr) == THREAD_SLEEP_SET &&
 +                               thr->get_pending() == NULL ) {
                        thr->set_state(THREAD_RUNNING);
                        scheduler->next_thread(thr);
                        Thread::swap(&system_context, thr);
@@@ -972,7 -971,7 +972,7 @@@ bool ModelChecker::promises_expired() 
  /** @return whether the current partial trace must be a prefix of a
   * feasible trace. */
  bool ModelChecker::isfeasibleprefix() {
 -      return promises->size() == 0 && pending_rel_seqs->size() == 0;
 +      return promises->size() == 0 && pending_rel_seqs->size() == 0 && isfeasible();
  }
  
  /** @return whether the current partial trace is feasible. */
@@@ -1095,7 -1094,7 +1095,7 @@@ void ModelChecker::check_recency(ModelA
                                ModelAction *act=*rit;
                                bool foundvalue = false;
                                for (int j = 0; j<act->get_node()->get_read_from_size(); j++) {
-                                       if (act->get_node()->get_read_from_at(i)==write) {
+                                       if (act->get_node()->get_read_from_at(j)==write) {
                                                foundvalue = true;
                                                break;
                                        }