From 88b80ebdf5531379721e0990bc3c2ef07b8f5b29 Mon Sep 17 00:00:00 2001 From: Elad Ashkenazi Date: Thu, 4 Aug 2022 21:31:34 +0300 Subject: [PATCH] sys_net: Fix missing locks in some syscalls (#12459) --- rpcs3/Emu/Cell/lv2/sys_net.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rpcs3/Emu/Cell/lv2/sys_net.cpp b/rpcs3/Emu/Cell/lv2/sys_net.cpp index 61a3860a27..30de34df56 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_net.cpp @@ -370,6 +370,8 @@ error_code sys_net_bnet_accept(ppu_thread& ppu, s32 s, vm::ptr return true; } + auto lock = sock.lock(); + sock.poll_queue(idm::get_unlocked>(ppu.id), lv2_socket::poll_t::read, [&](bs_t events) -> bool { if (events & lv2_socket::poll_t::read) @@ -527,6 +529,8 @@ error_code sys_net_bnet_connect(ppu_thread& ppu, s32 s, vm::ptr>(ppu.id), lv2_socket::poll_t::write, [&](bs_t events) -> bool { if (events & lv2_socket::poll_t::write) @@ -802,6 +806,8 @@ error_code sys_net_bnet_recvfrom(ppu_thread& ppu, s32 s, vm::ptr buf, u32 return true; } + auto lock = sock.lock(); + sock.poll_queue(idm::get_unlocked>(ppu.id), lv2_socket::poll_t::read, [&](bs_t events) -> bool { if (events & lv2_socket::poll_t::read) @@ -933,6 +939,8 @@ error_code sys_net_bnet_sendto(ppu_thread& ppu, s32 s, vm::cptr buf, u32 l return true; } + auto lock = sock.lock(); + // Enable write event sock.poll_queue(idm::get_unlocked>(ppu.id), lv2_socket::poll_t::write, [&](bs_t events) -> bool {