From f873881a0ddf2043758b3e7925c95168600f42da Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Oct 2014 12:28:45 -0700 Subject: Helps to use a proper multithreaded queue instead of ugly plebian hackery. --- testnet/SimNetSocketManager.hpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'testnet/SimNetSocketManager.hpp') diff --git a/testnet/SimNetSocketManager.hpp b/testnet/SimNetSocketManager.hpp index df587072..a34728db 100644 --- a/testnet/SimNetSocketManager.hpp +++ b/testnet/SimNetSocketManager.hpp @@ -35,7 +35,8 @@ #include "../node/Constants.hpp" #include "../node/SocketManager.hpp" #include "../node/Mutex.hpp" -#include "Semaphore.hpp" + +#include "MTQ.hpp" namespace ZeroTier { @@ -96,9 +97,7 @@ public: */ inline void enqueue(const InetAddress &from,const void *data,unsigned int len) { - Mutex::Lock _l(_inbox_m); - _inbox.push_back(std::pair< InetAddress,Buffer >(from,Buffer(data,len))); - _waitCond.signal(); + _inbox.push(std::pair< InetAddress,Buffer >(from,Buffer(data,len))); } virtual bool send(const InetAddress &to,bool tcp,bool autoConnectTcp,const void *msg,unsigned int msglen); @@ -114,13 +113,10 @@ private: SharedPtr _mySocket; TransferStats _totals; - std::vector< std::pair< InetAddress,Buffer > > _inbox; - Mutex _inbox_m; + MTQ< std::pair< InetAddress,Buffer > > _inbox; std::map< InetAddress,TransferStats > _stats; Mutex _stats_m; - - Semaphore _waitCond; }; } // namespace ZeroTier -- cgit v1.2.3