RunCommandQueues: little optimization

remove command from queue on success, else do nothing, instead of remove command from queue and push it front on success
master
Loic Blot 2015-03-31 09:22:44 +02:00
parent 7c121726dc
commit ab77bf98ee
1 changed files with 9 additions and 6 deletions

View File

@ -1190,15 +1190,18 @@ void UDPPeer::RunCommandQueues(
(commands_processed < maxcommands)) {
try {
ConnectionCommand c = channels[i].queued_commands.front();
channels[i].queued_commands.pop_front();
LOG(dout_con<<m_connection->getDesc()
<<" processing queued reliable command "<<std::endl);
if (!processReliableSendCommand(c,max_packet_size)) {
LOG(dout_con<<m_connection->getDesc()
LOG(dout_con << m_connection->getDesc()
<< " processing queued reliable command " << std::endl);
// Packet is processed, remove it from queue
if (processReliableSendCommand(c,max_packet_size)) {
channels[i].queued_commands.pop_front();
} else {
LOG(dout_con << m_connection->getDesc()
<< " Failed to queue packets for peer_id: " << c.peer_id
<< ", delaying sending of " << c.data.getSize()
<< " bytes" << std::endl);
channels[i].queued_commands.push_front(c);
}
}
catch (ItemNotFoundException &e) {