A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Discard the wakeup tree when ODPOR reaches a disabled transition
[simgrid.git]
/
src
/
mc
/
explo
/
odpor
/
WakeupTree.hpp
diff --git
a/src/mc/explo/odpor/WakeupTree.hpp
b/src/mc/explo/odpor/WakeupTree.hpp
index
0ffcc67
..
def2840
100644
(file)
--- a/
src/mc/explo/odpor/WakeupTree.hpp
+++ b/
src/mc/explo/odpor/WakeupTree.hpp
@@
-35,8
+35,6
@@
namespace simgrid::mc::odpor {
*/
class WakeupTreeNode {
private:
*/
class WakeupTreeNode {
private:
- explicit WakeupTreeNode(std::shared_ptr<Transition> u) : action_(u) {}
-
WakeupTreeNode* parent_ = nullptr;
/** An ordered list of children of for this node in the tree */
WakeupTreeNode* parent_ = nullptr;
/** An ordered list of children of for this node in the tree */
@@
-53,6
+51,9
@@
private:
friend WakeupTreeIterator;
public:
friend WakeupTreeIterator;
public:
+ explicit WakeupTreeNode(std::shared_ptr<Transition> u) : action_(u) {}
+
+ WakeupTreeNode() = default;
~WakeupTreeNode() = default;
WakeupTreeNode(const WakeupTreeNode&) = delete;
WakeupTreeNode(WakeupTreeNode&&) = default;
~WakeupTreeNode() = default;
WakeupTreeNode(const WakeupTreeNode&) = delete;
WakeupTreeNode(WakeupTreeNode&&) = default;
@@
-71,6
+72,8
@@
public:
std::shared_ptr<Transition> get_action() const { return action_; }
const std::list<WakeupTreeNode*>& get_ordered_children() const { return children_; }
std::shared_ptr<Transition> get_action() const { return action_; }
const std::list<WakeupTreeNode*>& get_ordered_children() const { return children_; }
+ std::string string_of_whole_tree(int indentation_level) const;
+
/** Insert a node `node` as a new child of this node */
void add_child(WakeupTreeNode* node);
};
/** Insert a node `node` as a new child of this node */
void add_child(WakeupTreeNode* node);
};
@@
-151,6
+154,8
@@
public:
std::vector<std::string> get_single_process_texts() const;
std::vector<std::string> get_single_process_texts() const;
+ std::string string_of_whole_tree() const;
+
/**
* @brief Remove the subtree of the smallest (with respect
* to the tree's "<" relation) single-process node.
/**
* @brief Remove the subtree of the smallest (with respect
* to the tree's "<" relation) single-process node.
@@
-164,6
+169,8
@@
public:
*/
void remove_min_single_process_subtree();
*/
void remove_min_single_process_subtree();
+ void remove_subtree_at_aid(aid_t proc);
+
/**
* @brief Whether or not this tree is considered empty
*
/**
* @brief Whether or not this tree is considered empty
*