[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#58631: [Shepherd] Indefinite heap growth (memory leak)
From: |
Ludovic Courtès |
Subject: |
bug#58631: [Shepherd] Indefinite heap growth (memory leak) |
Date: |
Sat, 29 Oct 2022 12:01:57 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) |
The attached Fibers program illustrates the problem: heap grows even
though it’s not supposed to.
Ludo’.
;; https://issues.guix.gnu.org/58631
(use-modules (fibers)
(fibers channels)
(ice-9 rdelim)
(statprof))
(run-fibers
(lambda ()
(define channel
(make-channel))
(define leave-channel
(make-channel))
(spawn-fiber
(lambda ()
(sleep 10)
(put-message leave-channel 'leave)))
(spawn-fiber
(lambda ()
(let loop ()
(put-message channel 'hi!)
(get-message channel)
(loop))))
(spawn-fiber
(lambda ()
(let loop ()
(get-message channel)
(put-message channel 'hey!)
(loop))))
(spawn-fiber
(lambda ()
(let loop ()
(pk 'heap-size (assoc-ref (gc-stats) 'heap-size))
(sleep 2)
(loop))))
(get-message leave-channel))
;; #:drain? #t
#:parallelism 1 ;don't create POSIX threads
#:hz 0)
bug#58631: [Shepherd] Indefinite heap growth (memory leak), Joshua Branson, 2022/10/20