model: we only resolve one promise at a time
[model-checker.git] / mutex.cc
index 51315d94bbf3081959c4c59d1d4c6af727f4a7ea..145000548be4665f7f8a2cfb4fb657c2ab9a5382 100644 (file)
--- a/mutex.cc
+++ b/mutex.cc
@@ -1,5 +1,9 @@
-#include "mutex.h"
+#include <mutex>
+
 #include "model.h"
+#include "threads-model.h"
+#include "clockvector.h"
+#include "action.h"
 
 namespace std {
 mutex::mutex() {
@@ -14,8 +18,7 @@ void mutex::lock() {
 }
        
 bool mutex::try_lock() {
-  model->switch_to_master(new ModelAction(ATOMIC_TRYLOCK, std::memory_order_seq_cst, this));
-  return thread_current()->get_return_value();
+  return model->switch_to_master(new ModelAction(ATOMIC_TRYLOCK, std::memory_order_seq_cst, this));
 }
 
 void mutex::unlock() {