diff options
author | Liam <byteslice@airmail.cc> | 2023-08-20 05:09:35 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-08-20 05:09:35 +0200 |
commit | 0cd9d51e06de7bb17b238096976d177446260a80 (patch) | |
tree | ba5b64caa0355ffa2432987bc56032f6e9fa20ce | |
parent | Merge pull request #11320 from Kelebek1/mask_depthstencil_clear (diff) | |
download | yuzu-0cd9d51e06de7bb17b238096976d177446260a80.tar yuzu-0cd9d51e06de7bb17b238096976d177446260a80.tar.gz yuzu-0cd9d51e06de7bb17b238096976d177446260a80.tar.bz2 yuzu-0cd9d51e06de7bb17b238096976d177446260a80.tar.lz yuzu-0cd9d51e06de7bb17b238096976d177446260a80.tar.xz yuzu-0cd9d51e06de7bb17b238096976d177446260a80.tar.zst yuzu-0cd9d51e06de7bb17b238096976d177446260a80.zip |
-rw-r--r-- | src/core/hle/service/service.h | 4 | ||||
-rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 5 | ||||
-rw-r--r-- | src/core/hle/service/sockets/bsd.h | 3 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index 45b2c43b7..d539ed0f4 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h @@ -79,8 +79,8 @@ protected: using HandlerFnP = void (Self::*)(HLERequestContext&); /// Used to gain exclusive access to the service members, e.g. from CoreTiming thread. - [[nodiscard]] std::scoped_lock<std::mutex> LockService() { - return std::scoped_lock{lock_service}; + [[nodiscard]] virtual std::unique_lock<std::mutex> LockService() { + return std::unique_lock{lock_service}; } /// System context that the service operates under. diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 11f8efbac..d8509c1dd 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp @@ -1029,6 +1029,11 @@ BSD::~BSD() { } } +std::unique_lock<std::mutex> BSD::LockService() { + // Do not lock socket IClient instances. + return {}; +} + BSDCFG::BSDCFG(Core::System& system_) : ServiceFramework{system_, "bsdcfg"} { // clang-format off static const FunctionInfo functions[] = { diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h index 430edb97c..161f22b9b 100644 --- a/src/core/hle/service/sockets/bsd.h +++ b/src/core/hle/service/sockets/bsd.h @@ -186,6 +186,9 @@ private: // Callback identifier for the OnProxyPacketReceived event. Network::RoomMember::CallbackHandle<Network::ProxyPacket> proxy_packet_received; + +protected: + virtual std::unique_lock<std::mutex> LockService() override; }; class BSDCFG final : public ServiceFramework<BSDCFG> { |