promise: rewrite into a simpler header file
[model-checker.git] / promise.h
index fda00cc508229221e5965ea3c752443d503bb1ca..d729e0309868846425d0c439962187b7aa83de44 100644 (file)
--- a/promise.h
+++ b/promise.h
@@ -6,21 +6,23 @@
 
 #ifndef __PROMISE_H__
 #define __PROMISE_H__
-#include <inttypes.h>
 
+#include <inttypes.h>
 
 class ModelAction;
 
 class Promise {
  public:
-       Promise(ModelAction * act, uint64_t value);
-       ModelAction * get_action() { return read; }
+       Promise(ModelAction *act, uint64_t value) :
+               value(value), read(act), numthreads(1)
+       { }
+       ModelAction * get_action() const { return read; }
        int increment_threads() { return ++numthreads; }
-       uint64_t get_value() { return value; }
+       uint64_t get_value() const { return value; }
 
  private:
-       uint64_t value;
-       ModelAction *read;
+       const uint64_t value;
+       ModelAction * const read;
        unsigned int numthreads;
 };