fix my todo comments so they appear in documentation
[model-checker.git] / threads.cc
index ba7b54730781369fd6c17ec9f4bc492d660b3843..399472c9ac60b5b578ea0af88ea05bcf7da06c9f 100644 (file)
@@ -1,3 +1,8 @@
+/** @file threads.cc
+ *  @brief Thread functions.
+ */
+
+
 #include "libthreads.h"
 #include "common.h"
 #include "threads.h"
@@ -23,10 +28,21 @@ Thread * thread_current(void)
        return model->scheduler->get_current_thread();
 }
 
-/* This method just gets around makecontext not being 64-bit clean */
+/**
+ * Provides a startup wrapper for each thread, allowing some initial
+ * model-checking data to be recorded. This method also gets around makecontext
+ * not being 64-bit clean
+ * @todo We should make the START event always immediately follow the
+ * CREATE event, so we don't get redundant traces...
+ */
 
 void thread_startup() {
        Thread * curr_thread = thread_current();
+
+       /* Add dummy "start" action, just to create a first clock vector */
+       model->switch_to_master(new ModelAction(THREAD_START, std::memory_order_seq_cst, curr_thread));
+
+       /* Call the actual thread function */
        curr_thread->start_routine(curr_thread->arg);
 }