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
Age | Commit message (Expand) | Author |
on @var{sched} when the file