From 6606075dbad702441a5122329eb5749e6527dc0d Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 22 Apr 2019 22:30:45 +0100 Subject: [PATCH] kodi: fix SIGTERM patch after xbmc/15730 and xbmc/15776 --- .../patches/kodi-100.10-handle-SIGTERM.patch | 55 +++++++++---------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/packages/mediacenter/kodi/patches/kodi-100.10-handle-SIGTERM.patch b/packages/mediacenter/kodi/patches/kodi-100.10-handle-SIGTERM.patch index 8ca1d73f41..8f84b0e776 100644 --- a/packages/mediacenter/kodi/patches/kodi-100.10-handle-SIGTERM.patch +++ b/packages/mediacenter/kodi/patches/kodi-100.10-handle-SIGTERM.patch @@ -1,6 +1,6 @@ -From ab5679fefbf2190008ba6c815e91f5c24820614e Mon Sep 17 00:00:00 2001 +From 5ef37fded5c9c84134f338fd489983177ec555f5 Mon Sep 17 00:00:00 2001 From: MilhouseVH -Date: Mon, 27 Aug 2018 17:48:05 +0100 +Date: Tue, 19 Mar 2019 18:06:56 +0000 Subject: [PATCH] handle SIGTERM 0. CApplication::Stop cant be trusted. (deadlocks crashes and boo) @@ -15,18 +15,17 @@ so, when shutdown/reboot is requested: 6. addons / pvrmanager / cec / everything else.. are free to deadlock / crash now, we dont care 7. KILL --- - xbmc/Application.cpp | 21 ++++++++++++++++----- - xbmc/Application.h | 1 + - xbmc/XBApplicationEx.cpp | 1 + - xbmc/XBApplicationEx.h | 1 + - xbmc/platform/posix/main.cpp | 2 +- - 5 files changed, 20 insertions(+), 6 deletions(-) + xbmc/Application.cpp | 23 +++++++++++++++++------ + xbmc/Application.h | 1 + + xbmc/XBApplicationEx.cpp | 1 + + xbmc/XBApplicationEx.h | 1 + + 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index f39a94e..80bcecb 100644 +index 3bd24ef..b151026 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2286,12 +2286,12 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg) +@@ -2029,12 +2029,12 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg) switch (msg) { case TMSG_POWERDOWN: @@ -41,7 +40,7 @@ index f39a94e..80bcecb 100644 break; case TMSG_SHUTDOWN: -@@ -2312,12 +2312,13 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg) +@@ -2055,12 +2055,13 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg) case TMSG_RESTART: case TMSG_RESET: @@ -56,7 +55,7 @@ index f39a94e..80bcecb 100644 Stop(EXITCODE_RESTARTAPP); #endif break; -@@ -2764,6 +2765,17 @@ bool CApplication::Cleanup() +@@ -2522,6 +2523,17 @@ bool CApplication::Cleanup() } } @@ -74,7 +73,7 @@ index f39a94e..80bcecb 100644 void CApplication::Stop(int exitCode) { CLog::Log(LOGNOTICE, "Stopping player"); -@@ -2790,7 +2802,7 @@ void CApplication::Stop(int exitCode) +@@ -2548,7 +2560,7 @@ void CApplication::Stop(int exitCode) m_frameMoveGuard.unlock(); CVariant vExitCode(CVariant::VariantTypeObject); @@ -83,7 +82,7 @@ index f39a94e..80bcecb 100644 CServiceBroker::GetAnnouncementManager()->Announce(ANNOUNCEMENT::System, "xbmc", "OnQuit", vExitCode); // Abort any active screensaver -@@ -2822,7 +2834,6 @@ void CApplication::Stop(int exitCode) +@@ -2580,7 +2592,6 @@ void CApplication::Stop(int exitCode) // Needs cleaning up CApplicationMessenger::GetInstance().Stop(); m_AppFocused = false; @@ -91,11 +90,20 @@ index f39a94e..80bcecb 100644 CLog::Log(LOGNOTICE, "Stopping all"); // cancel any jobs from the jobmanager +@@ -4111,7 +4122,7 @@ void CApplication::ProcessSlow() + if (CPlatformPosix::TestShutdownFlag()) + { + CLog::Log(LOGNOTICE, "Quitting due to POSIX signal"); +- CApplicationMessenger::GetInstance().PostMsg(TMSG_QUIT); ++ CApplicationMessenger::GetInstance().PostMsg(TMSG_RESTARTAPP); + } + #endif + diff --git a/xbmc/Application.h b/xbmc/Application.h -index 1faf9dd..379d3ca 100644 +index 30cf6e7..1866fab 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h -@@ -154,6 +154,7 @@ public: +@@ -156,6 +156,7 @@ public: bool StartServer(enum ESERVERS eServer, bool bStart, bool bWait = false); bool IsCurrentThread() const; @@ -104,7 +112,7 @@ index 1faf9dd..379d3ca 100644 void UnloadSkin(bool forReload = false); bool LoadCustomWindows(); diff --git a/xbmc/XBApplicationEx.cpp b/xbmc/XBApplicationEx.cpp -index 9255271..da788b2 100644 +index fb0bd6c..4f82951 100644 --- a/xbmc/XBApplicationEx.cpp +++ b/xbmc/XBApplicationEx.cpp @@ -24,6 +24,7 @@ CXBApplicationEx::CXBApplicationEx() @@ -127,19 +135,6 @@ index e7534b8..8f45f04 100644 bool m_AppFocused; bool m_renderGUI; -diff --git a/xbmc/platform/posix/main.cpp b/xbmc/platform/posix/main.cpp -index 55840fd..2828c7f 100644 ---- a/xbmc/platform/posix/main.cpp -+++ b/xbmc/platform/posix/main.cpp -@@ -47,7 +47,7 @@ protected: - void Process() override - { - CMessagePrinter::DisplayMessage("Exiting application"); -- KODI::MESSAGING::CApplicationMessenger::GetInstance().PostMsg(TMSG_QUIT); -+ KODI::MESSAGING::CApplicationMessenger::GetInstance().PostMsg(TMSG_RESTARTAPP); - } - }; - -- 2.14.1