diff --git a/pcsx2/CMakeLists.txt b/pcsx2/CMakeLists.txt index 73d688bea1..128fcfc563 100644 --- a/pcsx2/CMakeLists.txt +++ b/pcsx2/CMakeLists.txt @@ -271,7 +271,6 @@ set(pcsx2GuiSources gui/Dialogs/LogOptionsDialog.cpp gui/Dialogs/McdConfigDialog.cpp gui/Dialogs/PickUserModeDialog.cpp - gui/Dialogs/StuckThreadDialog.cpp gui/Dialogs/SysConfigDialog.cpp gui/Debugger/BreakpointWindow.cpp gui/Debugger/CtrlDisassemblyView.cpp diff --git a/pcsx2/gui/Dialogs/ModalPopups.h b/pcsx2/gui/Dialogs/ModalPopups.h index 14da06dea6..8145d42b8a 100644 --- a/pcsx2/gui/Dialogs/ModalPopups.h +++ b/pcsx2/gui/Dialogs/ModalPopups.h @@ -104,41 +104,6 @@ namespace Dialogs AssertionDialog( const wxString& text, const wxString& stacktrace ); virtual ~AssertionDialog() throw() {} }; - - // There are two types of stuck threads: - // * Threads stuck on any action that is not a cancellation. - // * Threads stuck trying to cancel. - // - // The former means we can provide a "cancel" action for the user, which would itself - // open a new dialog in the latter category. The latter means that there's really nothing - // we can do, since pthreads API provides no good way for killing threads. The only - // valid options for the user in that case is to either wait (boring!) or kill the - // process (awesome!). - - enum StuckThreadActionType - { - // Allows the user to attempt a cancellation of a stuck thread. This should only be - // used on threads which are not already stuck during a cancellation action (ie, suspension - // or other job requests). Also, if the running thread is known to not have any - // cancellation points then this shouldn't be used either. - StacT_TryCancel, - - // Allows the user to kill the entire process for a stuck thread. Use this for any - // thread which has failed to cancel in a reasonable timeframe, or for any stuck action - // if the thread is known to have no cancellation points. - StacT_KillProcess, - }; - - class StuckThreadDialog : public wxDialogWithHelpers, - public EventListener_Thread - { - public: - StuckThreadDialog( wxWindow* parent, StuckThreadActionType action, Threading::pxThread& stuck_thread ); - virtual ~StuckThreadDialog() throw() {} - - protected: - void OnThreadCleanup(); - }; } wxWindowID pxIssueConfirmation( wxDialogWithHelpers& confirmDlg, const MsgButtons& buttons ); diff --git a/pcsx2/gui/Dialogs/StuckThreadDialog.cpp b/pcsx2/gui/Dialogs/StuckThreadDialog.cpp deleted file mode 100644 index c0b648b6b3..0000000000 --- a/pcsx2/gui/Dialogs/StuckThreadDialog.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* PCSX2 - PS2 Emulator for PCs - * Copyright (C) 2002-2010 PCSX2 Dev Team - * - * PCSX2 is free software: you can redistribute it and/or modify it under the terms - * of the GNU Lesser General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with PCSX2. - * If not, see . - */ - -#include "PrecompiledHeader.h" -#include "App.h" -#include "Dialogs/ModalPopups.h" - -using namespace pxSizerFlags; -using namespace Threading; - -// NOTE: Currently unused module. Stuck Threads are not detected or handled at this time, -// though I would like to have something in place in the distant future. --air - - -Dialogs::StuckThreadDialog::StuckThreadDialog( wxWindow* parent, StuckThreadActionType action, pxThread& stuck_thread ) - : wxDialogWithHelpers( parent, _("PCSX2 Thread is not responding") ) -{ - stuck_thread.AddListener( this ); - - *this += Heading( wxsFormat( - pxE( L"The thread '%s' is not responding. It could be deadlocked, or it might just be running *really* slowly." - ), - stuck_thread.GetName().data() - ) ); - - - *this += Heading( - L"\nDo you want to stop the program [Yes/No]?" - L"\nOr press [Ignore] to suppress further assertions." - ); - - *this += new ModalButtonPanel( this, MsgButtons().Cancel().Custom(L"Wait", "wait") ) | StdCenter(); - - if( wxWindow* idyes = FindWindowById( wxID_YES ) ) - idyes->SetFocus(); -} - -void Dialogs::StuckThreadDialog::OnThreadCleanup() -{ -} diff --git a/pcsx2/gui/ExecutorThread.cpp b/pcsx2/gui/ExecutorThread.cpp index a99e24ebb1..eb6adbb092 100644 --- a/pcsx2/gui/ExecutorThread.cpp +++ b/pcsx2/gui/ExecutorThread.cpp @@ -391,64 +391,6 @@ void pxEvtQueue::SetActiveThread() m_OwnerThreadId = wxThread::GetCurrentId(); } -// -------------------------------------------------------------------------------------- -// WaitingForThreadedTaskDialog -// -------------------------------------------------------------------------------------- -// Note: currently unused (legacy code). May be utilized at a later date, so I'm leaving -// it in (for now!) -// -class WaitingForThreadedTaskDialog - : public wxDialogWithHelpers -{ -private: - typedef wxDialogWithHelpers _parent; - -protected: - pxThread* m_thread; - -public: - WaitingForThreadedTaskDialog( pxThread* thr, wxWindow* parent, const wxString& title, const wxString& content ); - virtual ~WaitingForThreadedTaskDialog() throw() {} - -protected: - void OnCancel_Clicked( wxCommandEvent& evt ); - void OnTerminateApp_Clicked( wxCommandEvent& evt ); -}; - -// -------------------------------------------------------------------------------------- -// WaitingForThreadedTaskDialog Implementations -// -------------------------------------------------------------------------------------- -WaitingForThreadedTaskDialog::WaitingForThreadedTaskDialog( pxThread* thr, wxWindow* parent, const wxString& title, const wxString& content ) - : wxDialogWithHelpers( parent, title ) -{ - SetMinWidth( 500 ); - - m_thread = thr; - - *this += Text( content ) | StdExpand(); - *this += 15; - *this += Heading(_("Press Cancel to attempt to cancel the action.")); - *this += Heading(AddAppName(_("Press Terminate to kill %s immediately."))); - - *this += new wxButton( this, wxID_CANCEL ); - *this += new wxButton( this, wxID_ANY, _("Terminate App") ); -} - -void WaitingForThreadedTaskDialog::OnCancel_Clicked( wxCommandEvent& evt ) -{ - evt.Skip(); - if( !m_thread ) return; - m_thread->Cancel( false ); - - if( wxWindow* cancel = FindWindowById( wxID_CANCEL ) ) cancel->Disable(); -} - -void WaitingForThreadedTaskDialog::OnTerminateApp_Clicked( wxCommandEvent& evt ) -{ - // (note: SIGTERM is a "handled" kill that performs shutdown stuff, which typically just crashes anyway) - wxKill( wxGetProcessId(), wxSIGKILL ); -} - // -------------------------------------------------------------------------------------- // ExecutorThread Implementations // -------------------------------------------------------------------------------------- diff --git a/pcsx2/windows/VCprojects/pcsx2.vcxproj b/pcsx2/windows/VCprojects/pcsx2.vcxproj index ab999028a0..52831de742 100644 --- a/pcsx2/windows/VCprojects/pcsx2.vcxproj +++ b/pcsx2/windows/VCprojects/pcsx2.vcxproj @@ -381,7 +381,6 @@ - diff --git a/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters b/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters index 5bbb6081c2..7e620af612 100644 --- a/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters +++ b/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters @@ -677,9 +677,6 @@ AppHost\Dialogs - - AppHost\Dialogs - AppHost\Dialogs