diff options
Diffstat (limited to 'src/connection.cpp')
-rw-r--r-- | src/connection.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/connection.cpp b/src/connection.cpp index cf5be7ed6..a9f1d5457 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -1236,10 +1236,9 @@ SharedBuffer<u8> UDPPeer::addSpiltPacket(u8 channel, /* Connection Threads */ /******************************************************************************/ -ConnectionSendThread::ConnectionSendThread(Connection* parent, - unsigned int max_packet_size, +ConnectionSendThread::ConnectionSendThread( unsigned int max_packet_size, float timeout) : - m_connection(parent), + m_connection(NULL), m_max_packet_size(max_packet_size), m_timeout(timeout), m_max_commands_per_iteration(1), @@ -1250,6 +1249,7 @@ ConnectionSendThread::ConnectionSendThread(Connection* parent, void * ConnectionSendThread::Thread() { + assert(m_connection != NULL); ThreadStarted(); log_register_thread("ConnectionSend"); @@ -1995,14 +1995,14 @@ void ConnectionSendThread::sendAsPacket(u16 peer_id, u8 channelnum, m_outgoing_queue.push_back(packet); } -ConnectionReceiveThread::ConnectionReceiveThread(Connection* parent, - unsigned int max_packet_size) : - m_connection(parent) +ConnectionReceiveThread::ConnectionReceiveThread(unsigned int max_packet_size) : + m_connection(NULL) { } void * ConnectionReceiveThread::Thread() { + assert(m_connection != NULL); ThreadStarted(); log_register_thread("ConnectionReceive"); @@ -2657,8 +2657,8 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout, m_event_queue(), m_peer_id(0), m_protocol_id(protocol_id), - m_sendThread(this, max_packet_size, timeout), - m_receiveThread(this, max_packet_size), + m_sendThread(max_packet_size, timeout), + m_receiveThread(max_packet_size), m_info_mutex(), m_bc_peerhandler(0), m_bc_receive_timeout(0), @@ -2667,6 +2667,9 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout, { m_udpSocket.setTimeoutMs(5); + m_sendThread.setParent(this); + m_receiveThread.setParent(this); + m_sendThread.Start(); m_receiveThread.Start(); } @@ -2678,8 +2681,8 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout, m_event_queue(), m_peer_id(0), m_protocol_id(protocol_id), - m_sendThread(this, max_packet_size, timeout), - m_receiveThread(this, max_packet_size), + m_sendThread(max_packet_size, timeout), + m_receiveThread(max_packet_size), m_info_mutex(), m_bc_peerhandler(peerhandler), m_bc_receive_timeout(0), @@ -2689,6 +2692,9 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout, { m_udpSocket.setTimeoutMs(5); + m_sendThread.setParent(this); + m_receiveThread.setParent(this); + m_sendThread.Start(); m_receiveThread.Start(); |