#include "mymemory.h"
#include "memoryorder.h"
#include "modeltypes.h"
+#include "pthread.h"
/* Forward declarations */
class ClockVector;
class Thread;
class Promise;
-namespace std {
+namespace cdsc {
class mutex;
}
THREAD_FINISH, /**< A thread completion action */
PTHREAD_CREATE, /**< A pthread creation action */
PTHREAD_JOIN, /**< A pthread join action */
+
ATOMIC_UNINIT, /**< Represents an uninitialized atomic */
ATOMIC_READ, /**< An atomic read action */
ATOMIC_WRITE, /**< An atomic write action */
uint64_t get_return_value() const;
const ModelAction * get_reads_from() const { return reads_from; }
Promise * get_reads_from_promise() const { return reads_from_promise; }
- std::mutex * get_mutex() const;
+ cdsc::mutex * get_mutex() const;
Node * get_node() const;
void set_node(Node *n) { node = n; }
bool may_read_from(const Promise *promise) const;
MEMALLOC
-// Added by WL
- void set_value(uint64_t val) {
- value = val;
- }
+ void set_value(uint64_t val) { value = val; }
+
+ /* to accomodate pthread create and join */
+ Thread * thread_operand;
+ void set_thread_operand(Thread *th) { thread_operand = th; }
private:
const char * get_type_str() const;