about summary refs log tree commit homepage
path: root/ext/sleepy_penguin/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sleepy_penguin/util.c')
-rw-r--r--ext/sleepy_penguin/util.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/sleepy_penguin/util.c b/ext/sleepy_penguin/util.c
index 4086b14..8dd6842 100644
--- a/ext/sleepy_penguin/util.c
+++ b/ext/sleepy_penguin/util.c
@@ -156,3 +156,12 @@ int rb_sp_wait(rb_sp_waitfn waiter, VALUE obj, int *fd)
         *fd = rb_sp_fileno(obj);
         return rc;
 }
+
+int rb_sp_gc_for_fd(int err)
+{
+        if (err == EMFILE || err == ENFILE || err == ENOMEM) {
+                rb_gc();
+                return 1;
+        }
+        return 0;
+}