parallel GC only after at least one thread was created?

Jens Thiele <[email protected]> Wed, 27 Mar 2024 17:09:50 +0100
Newsgroups gmane.lisp.scheme.gauche
Message-ID <[email protected]>
Hi,

maybe this is a feature, but from "top" it looks like parallel GC only
is used after at least one thread was created?

No parallel GC:

#!/usr/bin/env gosh
(use gauche.threads)

(define (main args)
  (while #t
    (gc))
  0)

looks like parallel GC is used:

#!/usr/bin/env gosh
(use gauche.threads)

(define (main args)
  (let1 t (make-thread (lambda() (+ 1 2)))
    (thread-start! t)
    #?=(thread-join! t))
  (while #t
    (gc))
  0)

Greetings,
Jens