Upstream fix for a memory leak introduced in Fibers 1.1.0 that would manifest in shepherd: https://github.com/wingo/fibers/issues/65 https://issues.guix.gnu.org/58631 diff --git a/fibers/scheduler.scm b/fibers/scheduler.scm index 2b03941..760b037 100644 --- a/fibers/scheduler.scm +++ b/fibers/scheduler.scm @@ -182,8 +182,10 @@ remote kernel thread." (#f (warn "scheduler for unknown fd" fd)) ((and events+waiters (active-events . waiters)) ;; First, clear the active status, as the EPOLLONESHOT has - ;; deactivated our entry in the epoll set. - (set-car! events+waiters #f) + ;; deactivated our entry in the epoll set. Set the car to 0, not #f, so + ;; that 'schedule-tasks-for-active-fd' doesn't end up re-adding a + ;; finalizer on FD. + (set-car! events+waiters 0) (set-cdr! events+waiters '()) (unless (zero? (logand revents (logior EPOLLHUP EPOLLERR))) (hashv-remove! (scheduler-fd-waiters sched) fd)) @@ -336,21 +338,19 @@ exp
aboutsummaryrefslogtreecommitdiff |