summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/file.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/mrblib/file.rb b/mrblib/file.rb
index 243549cbb..048fbae80 100644
--- a/mrblib/file.rb
+++ b/mrblib/file.rb
@@ -14,7 +14,12 @@ class File < IO
super(fd_or_path, mode)
else
@path = fd_or_path
- fd = IO.sysopen(@path, mode, perm)
+ begin
+ fd = IO.sysopen(@path, mode, perm)
+ rescue Errno::EMFILE
+ GC.start
+ fd = IO.sysopen(@path, mode, perm)
+ end
super(fd, mode)
end
end