#include <stdarg.h>
#include "execution.h"
-#include "model.h"
#include "action.h"
#include "nodestack.h"
#include "schedule.h"
-#include "snapshot-interface.h"
#include "common.h"
#include "clockvector.h"
#include "cyclegraph.h"
#include "promise.h"
#include "datarace.h"
#include "threads-model.h"
-#include "output.h"
#include "bugmessage.h"
#define INITIAL_THREAD_ID 0
used_sequence_numbers(0),
next_backtrack(NULL),
bugs(),
- stats(),
failed_promise(false),
too_many_reads(false),
no_valid_reads(false),
modelclock_t used_sequence_numbers;
ModelAction *next_backtrack;
SnapVector<bug_message *> bugs;
- struct execution_stats stats;
bool failed_promise;
bool too_many_reads;
bool no_valid_reads;
/* Initialize a model-checker thread, for special ModelActions */
model_thread = new Thread(get_next_id());
thread_map->put(id_to_int(model_thread->get_id()), model_thread);
+ scheduler->register_engine(this);
}
/** @brief Destructor */
case THREAD_CREATE: {
thrd_t *thrd = (thrd_t *)curr->get_location();
struct thread_params *params = (struct thread_params *)curr->get_value();
- Thread *th = new Thread(thrd, params->func, params->arg, get_thread(curr));
+ Thread *th = new Thread(get_next_id(), thrd, params->func, params->arg, get_thread(curr));
add_thread(th);
th->set_creation(curr);
/* Promises can be satisfied by children */