edits
[c11tester.git] / fuzzer.cc
index 9ad61c3c5cddbc96073e85c15e8dd05f46bffadb..fff0c1e21be8334426f60a15c40e55f2f6a7142b 100644 (file)
--- a/fuzzer.cc
+++ b/fuzzer.cc
@@ -8,7 +8,7 @@ int Fuzzer::selectWrite(ModelAction *read, SnapVector<ModelAction *> * rf_set) {
        return random_index;
 }
 
-Thread * Fuzzer::selectThread(Node *n, int * threadlist, int numthreads) {
+Thread * Fuzzer::selectThread(int * threadlist, int numthreads) {
        int random_index = random() % numthreads;
        int thread = threadlist[random_index];
        thread_id_t curr_tid = int_to_id(thread);
@@ -18,9 +18,10 @@ Thread * Fuzzer::selectThread(Node *n, 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;
 }