about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-11-08 10:08:38 +0000
committerEric Wong <normalperson@yhbt.net>2011-11-08 10:08:38 +0000
commit79d83988cb08ff646fcf7950c74e366ae6ebc290 (patch)
tree916fb6281ab130dc5732aeebd85dfa42972d0786
parent0d908e6ba1af6e0cc229dc4d66a2a0e97c07164c (diff)
downloadmogilefs-client-79d83988cb08ff646fcf7950c74e366ae6ebc290.tar.gz
No need to unnecessarily trigger GC nor hit EMFILE/ENFILE
on VMs that rarely GC IO objects...
-rw-r--r--lib/mogilefs/bigfile.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/mogilefs/bigfile.rb b/lib/mogilefs/bigfile.rb
index 8d5c75f..872cc5c 100644
--- a/lib/mogilefs/bigfile.rb
+++ b/lib/mogilefs/bigfile.rb
@@ -45,7 +45,11 @@ module MogileFS::Bigfile
         sock = MogileFS::HTTPReader.first(paths, t)
       end
 
-      w = MogileFS::X.copy_stream(sock, wr_io)
+      begin
+        w = MogileFS::X.copy_stream(sock, wr_io)
+      ensure
+        sock.close
+      end
 
       wr_io.respond_to?(:md5_check!) and wr_io.md5_check!(part[:md5])
       total += w