{
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() {
- std::map<int, class TreeNode *>::iterator it;
+ std::map<int, class TreeNode *, std::less< int >, MyAlloc< std::pair< const int, class TreeNode * > > >::iterator it;
for (it = children.begin(); it != children.end(); it++)
delete it->second;
TreeNode * TreeNode::explore_child(ModelAction *act)
{
TreeNode *n;
- std::set<int>::iterator it;
+ std::set<int, std::less< int >, MyAlloc< int > >::iterator it;
thread_id_t id = act->get_tid();
int i = id_to_int(id);
return parent->getRoot();
return this;
}
+
+bool TreeNode::is_enabled(Thread *t)
+{
+ return id_to_int(t->get_id()) < num_threads;
+}