bug-guix
[Top][All Lists]
Advanced

[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)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]