Implement timedwait
[c11tester.git] / conditionvariable.cc
index ce33e8084f3908b181f5378f0e9565c5d6c2ad45..9d569e974406dc56831387c4f55e5321151d2739 100644 (file)
@@ -1,24 +1,28 @@
-#include <mutex>
+#include "mutex.h"
 #include "model.h"
 #include <condition_variable>
+#include "action.h"
 
-
-namespace std {
+namespace cdsc {
 
 condition_variable::condition_variable() {
-               
+
+}
+
+condition_variable::~condition_variable() {
+
 }
 
 void condition_variable::notify_one() {
-       model->switch_to_master(new ModelAction(ATOMIC_NOTIFY_ONE, std::memory_order_seq_cst, this));
+       model->switch_thread(new ModelAction(ATOMIC_NOTIFY_ONE, std::memory_order_seq_cst, this));
 }
 
 void condition_variable::notify_all() {
-       model->switch_to_master(new ModelAction(ATOMIC_NOTIFY_ALL, std::memory_order_seq_cst, this));
+       model->switch_thread(new ModelAction(ATOMIC_NOTIFY_ALL, std::memory_order_seq_cst, this));
 }
 
 void condition_variable::wait(mutex& lock) {
-       model->switch_to_master(new ModelAction(ATOMIC_WAIT, std::memory_order_seq_cst, this, (uint64_t) &lock));
+       model->switch_thread(new ModelAction(ATOMIC_WAIT, std::memory_order_seq_cst, this, (uint64_t) &lock));
        //relock as a second action
        lock.lock();
 }