Browse Source

Prevent useless message copy if nothing is sent in TcpTransport::trySendMessage()

Paul-Louis Ageneau 4 months ago
parent
commit
ab9a362d69
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/impl/tcptransport.cpp

+ 3 - 1
src/impl/tcptransport.cpp

@@ -372,7 +372,9 @@ bool TcpTransport::trySendMessage(message_ptr &message) {
 		int len = ::send(mSock, data, int(size), flags);
 		if (len < 0) {
 			if (sockerrno == SEAGAIN || sockerrno == SEWOULDBLOCK) {
-				message = make_message(message->end() - size, message->end());
+				if (size < message->size())
+					message = make_message(message->end() - size, message->end());
+
 				return false;
 			} else {
 				PLOG_ERROR << "Connection closed, errno=" << sockerrno;