X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tree.cc;h=c161ca838de4947fbfc1ca486aaaf0400ca1475e;hb=efd0e6cfa2827dfec2cf5932c02f9c6559389f4d;hp=57e0c13f69902f071cb336d3a155a15db38f4c08;hpb=6b3cc5b800966b58d330bf516d92a17b4e2bee9d;p=model-checker.git diff --git a/tree.cc b/tree.cc index 57e0c13..c161ca8 100644 --- a/tree.cc +++ b/tree.cc @@ -7,6 +7,13 @@ TreeNode::TreeNode(TreeNode *par, ModelAction *act) { TreeNode::totalNodes++; this->parent = par; + if (!parent) { + num_threads = 1; + } else { + num_threads = parent->num_threads; + if (act && act->get_type() == THREAD_CREATE) + num_threads++; + } } TreeNode::~TreeNode() { @@ -57,3 +64,8 @@ TreeNode * TreeNode::getRoot() return parent->getRoot(); return this; } + +bool TreeNode::is_enabled(Thread *t) +{ + return id_to_int(t->get_id()) < num_threads; +}