#include "common.h"
-#include <cds/container/chase-lev-deque.h>
+#include <cds/misc/chase-lev-deque.h>
#include <cds_test/stress_test.h>
#include <cstdlib>
#include <ctime>
#include <iostream>
+#include <memory>
#include <thread>
using namespace std;
}
}
}
- // while (true) {
- // int res = deque->take();
- // if (res != EMPTY) {
- // sums[index] += res;
- // succ_counts[index]++;
- // } else {
- // break;
- // }
- // }
+ while (true) {
+ int res = deque->take();
+ if (res != EMPTY) {
+ sums[index] += res;
+ succ_counts[index]++;
+ } else {
+ break;
+ }
+ }
}
};
srand(time(NULL));
// Stealer threads
- std::thread *threads = new std::thread[s_nDequeStealerThreadCount];
+ std::unique_ptr<std::thread[]> threads(
+ new std::thread[s_nDequeStealerThreadCount]);
for (ullong i = 0; i < s_nDequeStealerThreadCount; i++) {
threads[i] = std::thread(StealerThread, i);
}
received_sum += sums[i];
overall_count += succ_counts[i];
}
- cout << "Sum of push: " << push_sum << "\n";
- cout << "Received sum:" << received_sum << "\n";
- cout << "overall_count:" << overall_count << "\n";
- cout << "push_count=" << push_count << "\n";
+ if (overall_count != push_count || received_sum != push_sum) {
+ cout << "Incorrect deque\n";
+ cout << "Push sum: " << push_sum << "\n";
+ cout << "Received sum:" << received_sum << "\n";
+ cout << "Push count=" << push_count << "\n";
+ cout << "Received count:" << overall_count << "\n";
+ }
}
} // namespace