about summary refs log tree commit homepage
path: root/ext/sleepy_penguin/epoll.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sleepy_penguin/epoll.c')
-rw-r--r--ext/sleepy_penguin/epoll.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/ext/sleepy_penguin/epoll.c b/ext/sleepy_penguin/epoll.c
index 120af0c..e655bf9 100644
--- a/ext/sleepy_penguin/epoll.c
+++ b/ext/sleepy_penguin/epoll.c
@@ -87,10 +87,8 @@ static VALUE s_new(VALUE klass, VALUE _flags)
         VALUE rv;
 
         if (fd < 0) {
-                if (errno == EMFILE || errno == ENFILE || errno == ENOMEM) {
-                        rb_gc();
+                if (rb_sp_gc_for_fd(errno))
                         fd = epoll_create1(flags);
-                }
                 if (fd < 0)
                         rb_sys_fail("epoll_create1");
         }