diff --git a/rpcs3/Emu/Cell/lv2/sys_net.cpp b/rpcs3/Emu/Cell/lv2/sys_net.cpp index 58a60e0799..4997e27e33 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_net.cpp @@ -1947,13 +1947,20 @@ error_code sys_net_bnet_select(ppu_thread& ppu, s32 nfds, vm::ptrtv_sec * 1000000ull + _timeout->tv_usec; if (nfds > 0 && nfds <= 1024) { + if (readfds) + _readfds = *readfds; + if (writefds) + _writefds = *writefds; + if (exceptfds) + _exceptfds = *exceptfds; + std::lock_guard nw_lock(g_fxo->get()->s_nw_mutex); reader_lock lock(id_manager::g_mutex); @@ -1968,11 +1975,11 @@ error_code sys_net_bnet_select(ppu_thread& ppu, s32 nfds, vm::ptr selected{}; - if (readfds && readfds->bit(i)) + if (readfds && _readfds.bit(i)) selected += lv2_socket::poll::read; - if (writefds && writefds->bit(i)) + if (writefds && _writefds.bit(i)) selected += lv2_socket::poll::write; - //if (exceptfds && exceptfds->bit(i)) + //if (exceptfds && _exceptfds.bit(i)) // selected += lv2_socket::poll::error; if (selected) @@ -2035,11 +2042,11 @@ error_code sys_net_bnet_select(ppu_thread& ppu, s32 nfds, vm::ptr selected{}; - if (readfds && readfds->bit(i)) + if (readfds && _readfds.bit(i)) selected += lv2_socket::poll::read; - if (writefds && writefds->bit(i)) + if (writefds && _writefds.bit(i)) selected += lv2_socket::poll::write; - //if (exceptfds && exceptfds->bit(i)) + //if (exceptfds && _exceptfds.bit(i)) // selected += lv2_socket::poll::error; if (selected)