8 typedef thread_id_t tree_t;
9 #define TREE_T_NONE THREAD_ID_T_NONE
14 * A tree with n possible branches from each node - used for recording the
15 * execution paths we've executed / backtracked
19 TreeNode(TreeNode *par);
21 bool hasBeenExplored(tree_t id) { return children.find(id) != children.end(); }
22 TreeNode * exploreChild(tree_t id);
23 tree_t getNextBacktrack();
25 /* Return 1 if already in backtrack, 0 otherwise */
26 int setBacktrack(tree_t id);
28 static int getTotalNodes() { return TreeNode::totalNodes; }
31 std::map<tree_t, class TreeNode *> children;
32 std::set<tree_t> backtrack;
33 static int totalNodes;
36 #endif /* __TREE_H__ */