AsyncReceive added

This commit is contained in:
orignal 2014-03-25 14:26:39 -04:00
parent 88214a0c58
commit 1bbc12b36a
2 changed files with 34 additions and 3 deletions

View file

@ -1,6 +1,5 @@
#include <fstream>
#include <algorithm>
#include <boost/bind.hpp>
#include <cryptopp/gzip.h>
#include "Log.h"
#include "RouterInfo.h"
@ -19,7 +18,7 @@ namespace stream
const i2p::data::LeaseSet& remote): m_Service (service), m_SendStreamID (0),
m_SequenceNumber (0), m_LastReceivedSequenceNumber (0), m_IsOpen (false),
m_LeaseSetUpdated (true), m_LocalDestination (local), m_RemoteLeaseSet (remote),
m_OutboundTunnel (nullptr)
m_OutboundTunnel (nullptr), m_ReceiveTimer (m_Service)
{
m_RecvStreamID = i2p::context.GetRandomNumberGenerator ().GenerateWord32 ();
UpdateCurrentRemoteLease ();
@ -27,6 +26,7 @@ namespace stream
Stream::~Stream ()
{
m_ReceiveTimer.cancel ();
while (auto packet = m_ReceiveQueue.Get ())
delete packet;
for (auto it: m_SavedPackets)
@ -124,6 +124,7 @@ namespace stream
LogPrint ("Closed");
m_IsOpen = false;
m_ReceiveQueue.WakeUp ();
m_ReceiveTimer.cancel ();
}
}