mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 23:11:25 +12: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)
|
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;
|
ppu.state += cpu_flag::wait;
|
||||||
|
|
|
@ -42,6 +42,8 @@ LOG_CHANNEL(nph_log, "NPHandler");
|
||||||
|
|
||||||
np_handler::np_handler()
|
np_handler::np_handler()
|
||||||
{
|
{
|
||||||
|
g_fxo->need<named_thread<signaling_handler>>();
|
||||||
|
|
||||||
g_cfg_rpcn.load();
|
g_cfg_rpcn.load();
|
||||||
|
|
||||||
is_connected = (g_cfg.net.net_active == np_internet_status::enabled);
|
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();
|
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);
|
s32 send_packet_from_p2p_port(const std::vector<u8>& data, const sockaddr_in& addr);
|
||||||
|
void need_network();
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void fmt_class_string<SignalingCommand>::format(std::string& out, u64 arg)
|
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 ////
|
//// SIGNALING CALLBACKS ////
|
||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
|
|
|
@ -48,6 +48,7 @@ enum SignalingCommand : u32
|
||||||
class signaling_handler
|
class signaling_handler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
signaling_handler();
|
||||||
void operator()();
|
void operator()();
|
||||||
void wake_up();
|
void wake_up();
|
||||||
signaling_handler& operator=(thread_state);
|
signaling_handler& operator=(thread_state);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue