#include "execution.h"
#include "bugmessage.h"
-#define INITIAL_THREAD_ID 0
-
ModelChecker *model;
/** @brief Constructor */
params(params),
scheduler(new Scheduler()),
node_stack(new NodeStack()),
- execution(new ModelExecution(this, ¶ms, scheduler, node_stack)),
+ execution(new ModelExecution(this, &this->params, scheduler, node_stack)),
execution_number(1),
diverge(NULL),
earliest_diverge(NULL),
ModelChecker::~ModelChecker()
{
delete node_stack;
- for (unsigned int i = 0; i < trace_analyses.size(); i++)
- delete trace_analyses[i];
delete scheduler;
}
* thread which just took a step--plus the first step
* for any newly-created thread
*/
- for (unsigned int i = 0; i < execution->get_num_threads(); i++) {
+ for (unsigned int i = 0; i < get_num_threads(); i++) {
thread_id_t tid = int_to_id(i);
Thread *thr = get_thread(tid);
if (!thr->is_model_thread() && !thr->is_complete() && !thr->get_pending()) {
model_print("******* Model-checking complete: *******\n");
print_stats();
+
+ /* Have the trace analyses dump their output. */
+ for (unsigned int i = 0; i < trace_analyses.size(); i++)
+ trace_analyses[i]->finish();
}