diff options
| author | Admiral H. Curtiss <pikachu025@gmail.com> | 2023-04-17 04:38:48 +0200 |
|---|---|---|
| committer | Admiral H. Curtiss <pikachu025@gmail.com> | 2023-04-18 01:24:10 +0200 |
| commit | b2ee95805864168e38fe79845ba071d6fd60868e (patch) | |
| tree | de5aa88eb71c555af184d9cd32175d1b84e4581d /Source/Core/DolphinQt/Debugger/NetworkWidget.cpp | |
| parent | 37a30a5e506107aac7ea1c2d6d215edde41019c2 (diff) | |
IOS/WiiSockMan: Move instance to IOS Kernel.
Diffstat (limited to 'Source/Core/DolphinQt/Debugger/NetworkWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Debugger/NetworkWidget.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp b/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp index 6439a061ba..b9504e64ff 100644 --- a/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp @@ -24,8 +24,10 @@ #include "Common/FileUtil.h" #include "Core/Config/MainSettings.h" +#include "Core/Core.h" #include "Core/IOS/Network/SSL.h" #include "Core/IOS/Network/Socket.h" +#include "Core/System.h" #include "DolphinQt/Host.h" #include "DolphinQt/Settings.h" @@ -95,9 +97,8 @@ QTableWidgetItem* GetSocketState(s32 host_fd) return new QTableWidgetItem(QTableWidget::tr("Unbound")); } -QTableWidgetItem* GetSocketBlocking(s32 wii_fd) +static QTableWidgetItem* GetSocketBlocking(const IOS::HLE::WiiSockMan& socket_manager, s32 wii_fd) { - const auto& socket_manager = IOS::HLE::WiiSockMan::GetInstance(); if (socket_manager.GetHostSocket(wii_fd) < 0) return new QTableWidgetItem(); const bool is_blocking = socket_manager.IsSocketBlocking(wii_fd); @@ -238,16 +239,27 @@ void NetworkWidget::Update() if (!isVisible()) return; + // needed because there's a race condition on the IOS instance otherwise + Core::CPUThreadGuard guard(Core::System::GetInstance()); + + auto* ios = IOS::HLE::GetIOS(); + if (!ios) + return; + + auto socket_manager = ios->GetSocketManager(); + if (!socket_manager) + return; + m_socket_table->setRowCount(0); for (u32 wii_fd = 0; wii_fd < IOS::HLE::WII_SOCKET_FD_MAX; wii_fd++) { m_socket_table->insertRow(wii_fd); - const s32 host_fd = IOS::HLE::WiiSockMan::GetInstance().GetHostSocket(wii_fd); + const s32 host_fd = socket_manager->GetHostSocket(wii_fd); m_socket_table->setItem(wii_fd, 0, new QTableWidgetItem(QString::number(wii_fd))); m_socket_table->setItem(wii_fd, 1, GetSocketDomain(host_fd)); m_socket_table->setItem(wii_fd, 2, GetSocketType(host_fd)); m_socket_table->setItem(wii_fd, 3, GetSocketState(host_fd)); - m_socket_table->setItem(wii_fd, 4, GetSocketBlocking(wii_fd)); + m_socket_table->setItem(wii_fd, 4, GetSocketBlocking(*socket_manager, wii_fd)); m_socket_table->setItem(wii_fd, 5, GetSocketName(host_fd)); } m_socket_table->resizeColumnsToContents(); |
