mirror of https://github.com/aria2/aria2
Buffer up at most A2_IOV_MAX buffer entries for BtMessages
parent
e0ea88ebcf
commit
c04df672d1
|
@ -116,13 +116,11 @@ void DefaultBtMessageDispatcher::sendMessagesInternal()
|
|||
}
|
||||
}
|
||||
|
||||
void DefaultBtMessageDispatcher::sendMessages() {
|
||||
// First flush any pending data in the buffer.
|
||||
peerConnection_->sendPendingData();
|
||||
if(!peerConnection_->sendBufferIsEmpty()) {
|
||||
return;
|
||||
void DefaultBtMessageDispatcher::sendMessages()
|
||||
{
|
||||
if(peerConnection_->getBufferEntrySize() < A2_IOV_MAX) {
|
||||
sendMessagesInternal();
|
||||
}
|
||||
sendMessagesInternal();
|
||||
peerConnection_->sendPendingData();
|
||||
}
|
||||
|
||||
|
|
|
@ -253,6 +253,11 @@ bool PeerConnection::sendBufferIsEmpty() const
|
|||
return socketBuffer_.sendBufferIsEmpty();
|
||||
}
|
||||
|
||||
size_t PeerConnection::getBufferEntrySize() const
|
||||
{
|
||||
return socketBuffer_.getBufferEntrySize();
|
||||
}
|
||||
|
||||
ssize_t PeerConnection::sendPendingData()
|
||||
{
|
||||
ssize_t writtenLength = socketBuffer_.send();
|
||||
|
|
|
@ -119,6 +119,8 @@ public:
|
|||
|
||||
bool sendBufferIsEmpty() const;
|
||||
|
||||
size_t getBufferEntrySize() const;
|
||||
|
||||
ssize_t sendPendingData();
|
||||
|
||||
const unsigned char* getBuffer() const
|
||||
|
|
|
@ -144,6 +144,10 @@ public:
|
|||
// Returns true if queue is empty.
|
||||
bool sendBufferIsEmpty() const;
|
||||
|
||||
size_t getBufferEntrySize() const
|
||||
{
|
||||
return bufq_.size();
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace aria2
|
||||
|
|
Loading…
Reference in New Issue