X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=main.cc;h=66ad9f1d0a6b9f34b9b416d37d7890957984565d;hb=8e4abe460e49ddbda202399c30dcd17c48a6a77b;hp=958a4451594569b3e77d72e942ba200ad52891b3;hpb=c05d5f98fc181668da38588cda493c349ea58ae7;p=model-checker.git diff --git a/main.cc b/main.cc index 958a445..66ad9f1 100644 --- a/main.cc +++ b/main.cc @@ -1,15 +1,20 @@ +/** @file main.cc + * @brief Entry point for the model checker. + */ + #include "libthreads.h" #include "common.h" #include "threads.h" /* global "model" object */ #include "model.h" -#include "snapshot.h" #include "snapshot-interface.h" -/* - * Return 1 if found next thread, 0 otherwise +/** The thread_system_next function takes the next step in the + * execution. @return Returns the 1 if there is another step and 0 + * otherwise. */ + static int thread_system_next(void) { Thread *curr, *next; @@ -33,12 +38,19 @@ static int thread_system_next(void) { return Thread::swap(model->get_system_context(), next); } +/** The thread_wait_finish method runs the current execution until we + * have no more steps to take. + */ + static void thread_wait_finish(void) { DBG(); while (!thread_system_next()); } + +/** The real_main function contains the main model checking loop. */ + void real_main() { thrd_t user_thread; ucontext_t main_context; @@ -66,13 +78,15 @@ void real_main() { delete model; DEBUG("Exiting\n"); + finalize(); } int main_numargs; char ** main_args; -/* - * Main system function +/** + * Main function. Just initializes snapshotting library and the + * snapshotting library calls the real_main function. */ int main(int numargs, char ** args) { /* Stash this stuff in case someone wants it eventually */