mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 11:36:13 +00:00
sys_net/NP: set some init dependencies
Ensure finalization order of network threads. This should prevent some crashes.
This commit is contained in:
parent
064fc81697
commit
86d2316089
4 changed files with 15 additions and 0 deletions
|
@ -1217,6 +1217,12 @@ lv2_socket::~lv2_socket()
|
|||
}
|
||||
}
|
||||
|
||||
extern void need_network()
|
||||
{
|
||||
g_fxo->need<network_context>();
|
||||
g_fxo->need<named_thread<tcp_timeout_monitor>>();
|
||||
}
|
||||
|
||||
error_code sys_net_bnet_accept(ppu_thread& ppu, s32 s, vm::ptr<sys_net_sockaddr> addr, vm::ptr<u32> paddrlen)
|
||||
{
|
||||
ppu.state += cpu_flag::wait;
|
||||
|
|
|
@ -42,6 +42,8 @@ LOG_CHANNEL(nph_log, "NPHandler");
|
|||
|
||||
np_handler::np_handler()
|
||||
{
|
||||
g_fxo->need<named_thread<signaling_handler>>();
|
||||
|
||||
g_cfg_rpcn.load();
|
||||
|
||||
is_connected = (g_cfg.net.net_active == np_internet_status::enabled);
|
||||
|
|
|
@ -16,6 +16,7 @@ LOG_CHANNEL(sign_log, "Signaling");
|
|||
|
||||
std::vector<std::pair<std::pair<u32, u16>, std::vector<u8>>> get_sign_msgs();
|
||||
s32 send_packet_from_p2p_port(const std::vector<u8>& data, const sockaddr_in& addr);
|
||||
void need_network();
|
||||
|
||||
template <>
|
||||
void fmt_class_string<SignalingCommand>::format(std::string& out, u64 arg)
|
||||
|
@ -37,6 +38,11 @@ void fmt_class_string<SignalingCommand>::format(std::string& out, u64 arg)
|
|||
});
|
||||
}
|
||||
|
||||
signaling_handler::signaling_handler()
|
||||
{
|
||||
need_network();
|
||||
}
|
||||
|
||||
/////////////////////////////
|
||||
//// SIGNALING CALLBACKS ////
|
||||
/////////////////////////////
|
||||
|
|
|
@ -48,6 +48,7 @@ enum SignalingCommand : u32
|
|||
class signaling_handler
|
||||
{
|
||||
public:
|
||||
signaling_handler();
|
||||
void operator()();
|
||||
void wake_up();
|
||||
signaling_handler& operator=(thread_state);
|
||||
|
|
Loading…
Add table
Reference in a new issue