lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GUILE 2.2 progress


From: David Kastrup
Subject: Re: GUILE 2.2 progress
Date: Sat, 25 Jan 2020 15:49:57 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

David Kastrup <address@hidden> writes:

> Han-Wen Nienhuys <address@hidden> writes:
>
>> With https://codereview.appspot.com/551390047/
>
> That patch is papering over a problem rather than fixing it.  It might
> be a reoccurence of something like
>
> commit c01a2a757e3c59727bdfa8d77568bf42525fbe05
> Author: Andy Wingo <address@hidden>
> Date:   Thu Jun 23 11:47:42 2016 +0200
>
>     Fix race between SMOB marking and finalization
>     
>     * libguile/smob.c (clear_smobnum): New helper.
>       (finalize_smob): Re-set the smobnum to the "finalized smob" type
>       before finalizing.  Fixes #19883.
>       (scm_smob_prehistory): Pre-register a "finalized smob" type, which has
>       no mark procedure.
>     * test-suite/standalone/test-smob-mark-race.c: New file.
>     * test-suite/standalone/Makefile.am: Arrange to build and run the new
>       test.

Actually, you may also be missing
commit c9910c604279f438728cd268272e1839cbc53835
Author: Andy Wingo <address@hidden>
Date:   Mon Mar 13 15:47:51 2017 +0100

    Fix finalizer resuscitation causing excessive GC
    
    * libguile/finalizers.c (async_gc_finalizer):
      (scm_i_register_async_gc_callback): Replace "weak gc callback"
      mechanism with "async gc callback" mechanism.  Very similar but the
      new API is designed to be called a bounded number of times, to avoid
      running afoul of libgc heuristics.
    * libguile/weak-list.h: New internal header.
    * libguile/Makefile.am (noinst_HEADERS): Add weak-list.h.
    * libguile/weak-set.c (vacuum_all_weak_sets):
      (scm_c_make_weak_set, scm_init_weak_set):
    * libguile/weak-table.c (vacuum_all_weak_tables):
      (scm_c_make_weak_table, scm_init_weak_table): Arrange to vacuum all
      weak sets from a single async GC callback, and likewise for weak
      tables.
    
    Thanks to Ludovic Courtès for tracking this bug down!


in the version you have been using.  That one looks like it could cause
trouble as well.

-- 
David Kastrup



reply via email to

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