diff options
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/connection.cpp | 20 | ||||
-rw-r--r-- | src/network/connection.h | 2 |
2 files changed, 9 insertions, 13 deletions
diff --git a/src/network/connection.cpp b/src/network/connection.cpp index d51324ed4..4440b8cc7 100644 --- a/src/network/connection.cpp +++ b/src/network/connection.cpp @@ -1063,14 +1063,14 @@ void UDPPeer::PutReliableSendCommand(ConnectionCommand &c, <<" processing reliable command for peer id: " << c.peer_id <<" data size: " << c.data.getSize() << std::endl); if (!processReliableSendCommand(c,max_packet_size)) { - channels[c.channelnum].queued_commands.push(c); + channels[c.channelnum].queued_commands.push_back(c); } } else { LOG(dout_con<<m_connection->getDesc() <<" Queueing reliable command for peer id: " << c.peer_id <<" data size: " << c.data.getSize() <<std::endl); - channels[c.channelnum].queued_commands.push(c); + channels[c.channelnum].queued_commands.push_back(c); } } @@ -1182,17 +1182,15 @@ void UDPPeer::RunCommandQueues( unsigned int maxtransfer) { - for (unsigned int i = 0; i < CHANNEL_COUNT; i++) - { + for (unsigned int i = 0; i < CHANNEL_COUNT; i++) { unsigned int commands_processed = 0; if ((channels[i].queued_commands.size() > 0) && (channels[i].queued_reliables.size() < maxtransfer) && - (commands_processed < maxcommands)) - { + (commands_processed < maxcommands)) { try { ConnectionCommand c = channels[i].queued_commands.front(); - channels[i].queued_commands.pop(); + channels[i].queued_commands.pop_front(); LOG(dout_con<<m_connection->getDesc() <<" processing queued reliable command "<<std::endl); if (!processReliableSendCommand(c,max_packet_size)) { @@ -1200,7 +1198,7 @@ void UDPPeer::RunCommandQueues( << " Failed to queue packets for peer_id: " << c.peer_id << ", delaying sending of " << c.data.getSize() << " bytes" << std::endl); - channels[i].queued_commands.push(c); + channels[i].queued_commands.push_front(c); } } catch (ItemNotFoundException &e) { @@ -1328,12 +1326,10 @@ bool ConnectionSendThread::packetsQueued() if (dynamic_cast<UDPPeer*>(&peer) == 0) continue; - for(u16 i=0; i<CHANNEL_COUNT; i++) - { + for(u16 i=0; i < CHANNEL_COUNT; i++) { Channel *channel = &(dynamic_cast<UDPPeer*>(&peer))->channels[i]; - if (channel->queued_commands.size() > 0) - { + if (channel->queued_commands.size() > 0) { return true; } } diff --git a/src/network/connection.h b/src/network/connection.h index 0aa63d4cf..9c920cc01 100644 --- a/src/network/connection.h +++ b/src/network/connection.h @@ -501,7 +501,7 @@ public: std::queue<BufferedPacket> queued_reliables; //queue commands prior splitting to packets - std::queue<ConnectionCommand> queued_commands; + std::deque<ConnectionCommand> queued_commands; IncomingSplitBuffer incoming_splits; |