more bug fixes
[c11tester.git] / fuzzer.cc
index 5b5be9ff4441942fbfd22461d13b0c3788a9c7d6..c41af4a0466b173615a7cd2d9bb48a45c569424c 100644 (file)
--- a/fuzzer.cc
+++ b/fuzzer.cc
@@ -23,7 +23,7 @@ Thread * Fuzzer::selectNotify(action_list_t * waiters) {
        while(random_index--)
                it=it->getNext();
        Thread *thread = model->get_thread(it->getVal());
-       waiters->erase(it);
+       waiters->removeAction(it->getVal());
        return thread;
 }
 
@@ -36,5 +36,10 @@ bool Fuzzer::shouldWake(const ModelAction *sleep) {
        clock_gettime(CLOCK_MONOTONIC, &currtime);
        uint64_t lcurrtime = currtime.tv_sec * 1000000000 + currtime.tv_nsec;
 
-       return ((sleep->get_time()+sleep->get_value()) >= lcurrtime);
+       return ((sleep->get_time()+sleep->get_value()) < lcurrtime);
+}
+
+bool Fuzzer::shouldWait(const ModelAction * act)
+{
+       return random() & 1;
 }