|
@@ -22,7 +22,7 @@ enum NODE_TYPE {
|
|
|
DES_NODE, // 输出节点
|
|
|
};
|
|
|
|
|
|
-class BaseNode
|
|
|
+class BaseNode : public std::enable_shared_from_this<BaseNode>
|
|
|
{
|
|
|
public:
|
|
|
BaseNode() = delete;
|
|
@@ -44,7 +44,12 @@ public:
|
|
|
{
|
|
|
std::unique_lock<std::mutex> lock(mutex_);
|
|
|
// 设置回调,当数据push时通知当前节点
|
|
|
- buffer->set_push_callback([this]() { cond_var_->notify_one(); });
|
|
|
+ std::weak_ptr<BaseNode> weak_self = shared_from_this();
|
|
|
+ buffer->set_push_callback([weak_self]() {
|
|
|
+ if (auto self = weak_self.lock()) {
|
|
|
+ self->cond_var_.notify_one();
|
|
|
+ }
|
|
|
+ });
|
|
|
output_buffers_[name] = buffer;
|
|
|
}
|
|
|
|