major rewrite - 'struct thread' replaced with internal 'class Thread'
[model-checker.git] / libatomic.cc
index a00838e91545b823dfddeca4ef53b7b2c575b826..059d2ae8d6aab1ac456a212b1b455d03214c33b9 100644 (file)
@@ -1,13 +1,14 @@
 #include "libatomic.h"
-#include "libthreads.h"
+#include "model.h"
+#include "threads_internal.h"
 
 void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order)
 {
-       thread_yield();
+       thread_current()->switch_to_master(new ModelAction(ATOMIC_WRITE, order, obj, value));
 }
 
 int atomic_load_explicit(struct atomic_object *obj, memory_order order)
 {
-       thread_yield();
+       thread_current()->switch_to_master(new ModelAction(ATOMIC_READ, order, obj, VALUE_NONE));
        return 0;
 }