Subject: bug#41948: Shepherd deadlocks

From: Ludovic Courtès <[email-masked]>
Date: Sat, 08 May 2021 22:50:49 +0200

Hi Andrew,

Andrew Whatson <[email-masked]> skribis:

> * libguile/finalizers.c (finalization_pipe): Initialize.
> (reset_finalization_pipe): Factored out.
> (start_finalization_thread): Create the pipe immediately before
> launching the thread.  Ensure the pipe is cleaned up if thread creation
> fails.  Update the finalizer callback if thread creation succeeds.
> (stop_finalization_thread): Clean up the pipe after stopping the thread.
> (spawn_finalizer_thread): Remove finalizer callback logic.
> (scm_set_automatic_finalization_enabled): Remove pipe management.
> (scm_init_finalizer_thread): Remove pipe management.

I tweaked the commit log and pushed as
5a281e35f4a5ae78fbcf10591d9358bec8f0bee0.

Thanks!

Ludo’.