#include "config.h"
#include "mymemory.h"
+class Promise;
class CycleNode;
class ModelAction;
bool checkForCycles();
bool checkForRMWViolation();
void addRMWEdge(const ModelAction *from, const ModelAction *rmw);
-
+ bool checkPromise(const ModelAction *from, Promise *p);
bool checkReachable(const ModelAction *from, const ModelAction *to);
void startChanges();
void commitChanges();
void rollbackChanges();
#if SUPPORT_MOD_ORDER_DUMP
+ void dumpNodes(FILE *file);
void dumpGraphToFile(const char * filename);
#endif
SNAPSHOTALLOC
private:
CycleNode * getNode(const ModelAction *);
+ HashTable<CycleNode *, CycleNode *, uintptr_t, 4, model_malloc, model_calloc, model_free> * discovered;
/** @brief A table for mapping ModelActions to CycleNodes */
HashTable<const ModelAction *, CycleNode *, uintptr_t, 4> actionToNode;