On Sat, May 27, 2023 at 03:35:38PM +0200, Jürgen Hötzel wrote: > Fixes deadlocks on OCaml5 when trying to get the lock that is already > held: > > Fatal error during lock: Resource deadlock avoided > --- > ocaml/guestfs-c.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/ocaml/guestfs-c.c b/ocaml/guestfs-c.c > index 3888c9456..bcf8e6ab3 100644 > --- a/ocaml/guestfs-c.c > +++ b/ocaml/guestfs-c.c > @@ -395,12 +395,16 @@ event_callback_wrapper (guestfs_h *g, > /* Ensure we are holding the GC lock before any GC operations are > * possible. (RHBZ#725824) > */ > - caml_leave_blocking_section (); > + bool in_blocking_section = (caml_state == NULL); > + > + if (in_blocking_section) > + caml_leave_blocking_section (); > > event_callback_wrapper_locked (g, data, event, event_handle, flags, > buf, buf_len, array, array_len); > > - caml_enter_blocking_section (); > + if (in_blocking_section) > + caml_enter_blocking_section (); > }
I don't understand the reason why this patch is needed. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com nbdkit - Flexible, fast NBD server with plugins https://gitlab.com/nbdkit/nbdkit _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs