add documentation
authorBrian Norris <banorris@uci.edu>
Mon, 25 Jun 2012 20:24:50 +0000 (13:24 -0700)
committerBrian Norris <banorris@uci.edu>
Mon, 25 Jun 2012 20:24:50 +0000 (13:24 -0700)
model.cc
nodestack.h

index 9be04b6956cc7ff852a012f3a5b1f98746eebf6d..f12e4d27db44af7b3593067c806c539ce930ced9 100644 (file)
--- a/model.cc
+++ b/model.cc
@@ -205,6 +205,7 @@ void ModelChecker::set_backtracking(ModelAction *act)
        if (node->has_been_explored(t->get_id()))
                return;
 
        if (node->has_been_explored(t->get_id()))
                return;
 
+       /* Cache the latest backtracking point */
        if (!next_backtrack || *prev > *next_backtrack)
                next_backtrack = prev;
 
        if (!next_backtrack || *prev > *next_backtrack)
                next_backtrack = prev;
 
index 974f1a94ad10cefbf59d62b89575de5595879c84..79ab19b3ac36fb805b66716a628dbcf389965ae6 100644 (file)
@@ -16,6 +16,15 @@ class ModelAction;
 
 typedef std::set< ModelAction *, std::less< ModelAction *>, MyAlloc< ModelAction * > > action_set_t;
 
 
 typedef std::set< ModelAction *, std::less< ModelAction *>, MyAlloc< ModelAction * > > action_set_t;
 
+/**
+ * @brief A single node in a NodeStack
+ *
+ * Represents a single node in the NodeStack. Each Node is associated with up
+ * to one action and up to one parent node. A node holds information
+ * regarding the last action performed (the "associated action"), the thread
+ * choices that have been explored (explored_children) and should be explored
+ * (backtrack), and the actions that the last action may read from.
+ */
 class Node {
 public:
        Node(ModelAction *act = NULL, Node *par = NULL, int nthreads = 1);
 class Node {
 public:
        Node(ModelAction *act = NULL, Node *par = NULL, int nthreads = 1);
@@ -57,6 +66,14 @@ private:
 
 typedef std::list<class Node *, MyAlloc< class Node * > > node_list_t;
 
 
 typedef std::list<class Node *, MyAlloc< class Node * > > node_list_t;
 
+/**
+ * @brief A stack of nodes
+ *
+ * Holds a Node linked-list that can be used for holding backtracking,
+ * may-read-from, and replay information. It is used primarily as a
+ * stack-like structure, in that backtracking points and replay nodes are
+ * only removed from the top (most recent).
+ */
 class NodeStack {
 public:
        NodeStack();
 class NodeStack {
 public:
        NodeStack();