edits
[c11tester.git] / fuzzer.cc
index 5b174b15f847b1df433178d600758e3be93b30f8..fff0c1e21be8334426f60a15c40e55f2f6a7142b 100644 (file)
--- a/fuzzer.cc
+++ b/fuzzer.cc
@@ -18,9 +18,10 @@ Thread * Fuzzer::selectThread(int * threadlist, int numthreads) {
 Thread * Fuzzer::selectNotify(action_list_t * waiters) {
        int numwaiters = waiters->size();
        int random_index = random() % numwaiters;
-       action_list_t::iterator it = waiters->begin();
-       advance(it, random_index);
-       Thread *thread = model->get_thread(*it);
+       sllnode<ModelAction*> * it = waiters->begin();
+       while(random_index--)
+         it=it->getNext();
+       Thread *thread = model->get_thread(it->getVal());
        waiters->erase(it);
        return thread;
 }