#define __PROMISE_H__
#include <inttypes.h>
-#include "threads.h"
+#include "threads-model.h"
#include "model.h"
public:
Promise(ModelAction *act, uint64_t value, modelclock_t expiration) :
value(value), expiration(expiration), read(act), write(NULL)
- {
+ {
increment_threads(act->get_tid());
}
- modelclock_t get_expiration() const {return expiration;}
+ modelclock_t get_expiration() const { return expiration; }
ModelAction * get_action() const { return read; }
bool increment_threads(thread_id_t tid);
- bool has_sync_thread(thread_id_t tid) {
- unsigned int id=id_to_int(tid);
- if (id>=synced_thread.size()) {
+ bool has_sync_thread(thread_id_t tid) {
+ unsigned int id = id_to_int(tid);
+ if (id >= synced_thread.size())
return false;
- }
return synced_thread[id];
}
+ bool check_promise();
uint64_t get_value() const { return value; }
void set_write(const ModelAction *act) { write = act; }
const ModelAction * get_write() { return write; }