Skip to content

Commit e60501d

Browse files
committed
version 2
Signed-off-by: Tony Najjar <tony.najjar@dexory.com>
1 parent de7390b commit e60501d

File tree

2 files changed

+7
-19
lines changed

2 files changed

+7
-19
lines changed

include/behaviortree_cpp/bt_factory.h

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,6 @@ class Tree
122122

123123
[[nodiscard]] TreeNode* rootNode() const;
124124

125-
/// Function signature for a custom sleep override.
126-
/// The function receives the desired sleep duration and a reference to the
127-
/// WakeUpSignal so it can check for early wake-up.
128-
/// Return true if woken up before the timeout, false if the full duration elapsed.
129-
using SleepOverrideFunc =
130-
std::function<bool(std::chrono::system_clock::duration, WakeUpSignal&)>;
131-
132125
/**
133126
* @brief Sleep for a certain amount of time. This sleep could be interrupted by the methods
134127
* TreeNode::emitWakeUpSignal() or Tree::emitWakeUpSignal()
@@ -145,12 +138,12 @@ class Tree
145138
void emitWakeUpSignal();
146139

147140
/**
148-
* @brief Set a custom sleep override function. When set, Tree::sleep()
149-
* will delegate to this function instead of using the default
150-
* WakeUpSignal::waitFor(). This allows integrating with external clock
151-
* sources (e.g. ROS sim time) while preserving wake-up signal support.
141+
* @brief Returns the shared WakeUpSignal used by this tree.
142+
* This can be used to check for preemption externally, e.g. when
143+
* implementing custom sleep logic with a different clock source.
144+
* Returns nullptr if the tree has not been initialized yet.
152145
*/
153-
void setSleepOverride(SleepOverrideFunc func);
146+
[[nodiscard]] std::shared_ptr<WakeUpSignal> wakeUpSignal() const;
154147

155148
~Tree();
156149

@@ -211,7 +204,6 @@ class Tree
211204
friend class BehaviorTreeFactory;
212205

213206
std::shared_ptr<WakeUpSignal> wake_up_;
214-
SleepOverrideFunc sleep_override_;
215207

216208
enum TickOption
217209
{

src/bt_factory.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -655,10 +655,6 @@ TreeNode* Tree::rootNode() const
655655

656656
bool Tree::sleep(std::chrono::system_clock::duration timeout)
657657
{
658-
if(sleep_override_)
659-
{
660-
return sleep_override_(timeout, *wake_up_);
661-
}
662658
return wake_up_->waitFor(
663659
std::chrono::duration_cast<std::chrono::milliseconds>(timeout));
664660
}
@@ -668,9 +664,9 @@ void Tree::emitWakeUpSignal()
668664
wake_up_->emitSignal();
669665
}
670666

671-
void Tree::setSleepOverride(SleepOverrideFunc func)
667+
std::shared_ptr<WakeUpSignal> Tree::wakeUpSignal() const
672668
{
673-
sleep_override_ = std::move(func);
669+
return wake_up_;
674670
}
675671

676672
Tree::~Tree()

0 commit comments

Comments
 (0)