Commit 38c45c6f by Carwyn

1. 退出偶尔会假死问题【临时解决】

parent 94516899
...@@ -101,29 +101,21 @@ void FMPluginManager::UninitService() ...@@ -101,29 +101,21 @@ void FMPluginManager::UninitService()
if (_fw_factory) { if (_fw_factory) {
FMP_INFO() << "======================== Quit ========================"; FMP_INFO() << "======================== Quit ========================";
_watcher.removePath(_fw_props[FMP_PROPKEY_PLUGINPATH].toString()); _watcher.removePath(_fw_props[FMP_PROPKEY_PLUGINPATH].toString());
FMPLoggerInterface::InitContext(_ctx, false);
//! 优雅关闭 //! TODO: 优雅关闭
try { // try {
// QList<ctkServiceReference> svcs = _ctx->getServiceReferences(); // _fw->stop();
// foreach(ctkServiceReference s, svcs) { // do {
// QSharedPointer<ctkPlugin> p = s.getPlugin(); // QCoreApplication::processEvents();
// qDebug() << p->getSymbolicName() << p->getPluginId() << "---"; // } while(_fw->waitForStop(50).getType() == ctkPluginFrameworkEvent::FRAMEWORK_WAIT_TIMEDOUT);
// if (p->getPluginId() > 0) {
// p->stop();
// } // }
// catch (const ctkPluginException& e) {
// FMP_ERROR() << e.cause()->what();
// } // }
_fw->stop();
while(_fw->waitForStop(200).getType() == ctkPluginFrameworkEvent::FRAMEWORK_WAIT_TIMEDOUT) {
QCoreApplication::processEvents();
}
}
catch (const ctkPluginException& e) {
FMP_ERROR() << e.cause()->what();
}
delete _fw_factory; // delete _fw_factory;
_fw_factory = nullptr; _fw_factory = nullptr;
_ctx = nullptr; // _ctx = nullptr;
_fw.clear(); _fw.clear();
_event_handlers.clear(); _event_handlers.clear();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment