diff options
Diffstat (limited to 'ext/sleepy_penguin/epoll.c')
-rw-r--r-- | ext/sleepy_penguin/epoll.c | 4 |
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"); } |