NetPlay: use a workaround from comex’s dc-netplay to interrupt enet

This commit is contained in:
mathieui
2015-03-09 17:31:13 +01:00
parent 27619e613f
commit 603fe25349
4 changed files with 163 additions and 109 deletions

View File

@ -47,6 +47,8 @@ class NetPlayClient : public TraversalClientClient
{
public:
void ThreadFunc();
void RunOnThread(std::function<void()> func);
void WakeupThread(ENetHost* host);
NetPlayClient(const std::string& address, const u16 port, NetPlayUI* dialog, const std::string& name, bool traversal, std::string centralServer, u16 centralPort);
~NetPlayClient();
@ -92,9 +94,12 @@ protected:
{
std::recursive_mutex game;
// lock order
std::recursive_mutex players, send;
std::recursive_mutex players;
std::recursive_mutex run_queue_write;
} m_crit;
Common::FifoQueue<std::function<void()>, false> m_run_queue;
Common::FifoQueue<GCPadStatus> m_pad_buffer[4];
Common::FifoQueue<NetWiimote> m_wiimote_buffer[4];