From 00eb72039495a0ae2cdae55f1d660a2ab0f26cb9 Mon Sep 17 00:00:00 2001 From: kosaki Date: Fri, 11 Jul 2014 19:22:19 +0000 Subject: * lib/net/smtp.rb (Net::SMTP#data): enable buffering while 'data' send for optimizing Net::SMTP#send_message. [ruby-dev:48329] [misc #9981] patch by Masahiro Tomita. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/net/smtp.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/net/smtp.rb b/lib/net/smtp.rb index 5fd4f8e5c5..64e536a12a 100644 --- a/lib/net/smtp.rb +++ b/lib/net/smtp.rb @@ -901,10 +901,17 @@ module Net end res = critical { check_continue get_response('DATA') - if msgstr - @socket.write_message msgstr - else - @socket.write_message_by_block(&block) + socket_sync_bak = @socket.io.sync + begin + @socket.io.sync = false + if msgstr + @socket.write_message msgstr + else + @socket.write_message_by_block(&block) + end + ensure + @socket.io.flush + @socket.io.sync = socket_sync_bak end recv_response() } -- cgit v1.2.3