diff --git a/server/pyinvoker.cpp b/server/pyinvoker.cpp index eb487134..5fed87ea 100644 --- a/server/pyinvoker.cpp +++ b/server/pyinvoker.cpp @@ -623,10 +623,11 @@ PythonInvoker::PythonInvoker() { } } }); + _notice_center = NoticeCenter::Instance().shared_from_this(); } PythonInvoker::~PythonInvoker() { - NoticeCenter::Instance().delListener(this, Broadcast::kBroadcastReloadConfig); + _notice_center->delListener(this, Broadcast::kBroadcastReloadConfig); { py::gil_scoped_acquire gil; // 加锁 if (_on_exit) { diff --git a/server/pyinvoker.h b/server/pyinvoker.h index 3d9a55e6..23f2a15e 100644 --- a/server/pyinvoker.h +++ b/server/pyinvoker.h @@ -8,6 +8,9 @@ #include #include #include +#include // ⭐ 必须 +#include // ⭐ 必须 +#include #include "Util/logger.h" #include "Common/config.h" #include "Common/MediaSource.h" @@ -46,6 +49,7 @@ private: PythonInvoker(); private: + toolkit::NoticeCenter::Ptr _notice_center; py::gil_scoped_release *_rel; py::scoped_interpreter *_interpreter; std::shared_ptr _logger;