#include "clockvector.h"
#include "hashtable.h"
#include "workqueue.h"
+#include "config.h"
/* Forward declaration */
class NodeStack;
/** Prints an execution summary with trace information. */
void print_summary();
+#if SUPPORT_MOD_ORDER_DUMP
+ void dumpGraph(char *filename);
+#endif
void add_thread(Thread *t);
void remove_thread(Thread *t);
thread_id_t get_next_id();
int get_num_threads();
- modelclock_t get_next_seq_num();
/** @return The currently executing Thread. */
Thread * get_current_thread() { return scheduler->get_current_thread(); }
int num_feasible_executions;
bool promises_expired();
+ modelclock_t get_next_seq_num();
+
/**
* Stores the ModelAction for the current thread action. Call this
* immediately before switching from user- to system-context to pass
bool w_modification_order(ModelAction *curr);
bool release_seq_head(const ModelAction *rf, rel_heads_list_t *release_heads) const;
bool resolve_release_sequences(void *location, work_queue_t *work_queue);
- void do_complete_join(ModelAction *join);
ModelAction *diverge;
ModelAction *earliest_diverge;