diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-06-15 02:34:49 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-06-15 02:34:49 +0000 |
commit | 6d6f704e29d7bf1e95f1c9c60cbab82ec3d430d2 (patch) | |
tree | 9df3920d41638aa37aa3bf9ffdfec5fb98aef595 | |
parent | e693b871567119345c2c567bfa2ad46e210d655b (diff) | |
download | kgio-6d6f704e29d7bf1e95f1c9c60cbab82ec3d430d2.tar.gz |
It is possible but unlikely to get ENOMEM on open(2), so try to GC away some files.
-rw-r--r-- | ext/kgio/tryopen.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/kgio/tryopen.c b/ext/kgio/tryopen.c index 82488de..26f1986 100644 --- a/ext/kgio/tryopen.c +++ b/ext/kgio/tryopen.c @@ -99,7 +99,7 @@ static VALUE s_tryopen(int argc, VALUE *argv, VALUE klass) retry: fd = (int)rb_thread_blocking_region(nogvl_open, &o, RUBY_UBF_IO, 0); if (fd == -1) { - if (errno == EMFILE || errno == ENFILE) { + if (errno == EMFILE || errno == ENFILE || errno == ENOMEM) { rb_gc(); if (retried) rb_sys_fail(o.pathname); |