summary refs log tree commit diff
path: root/gnu/packages/patches/guile-finalization-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/guile-finalization-crash.patch')
-rw-r--r--gnu/packages/patches/guile-finalization-crash.patch61
1 files changed, 0 insertions, 61 deletions
diff --git a/gnu/packages/patches/guile-finalization-crash.patch b/gnu/packages/patches/guile-finalization-crash.patch
deleted file mode 100644
index 098249e49f..0000000000
--- a/gnu/packages/patches/guile-finalization-crash.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-commit edf5aea7ac852db2356ef36cba4a119eb0c81ea9
-Author: Ludovic Courtès <ludo@gnu.org>
-Date:   Mon Dec 9 14:44:59 2019 +0100
-
-    Fix non-deterministic crash in 'finalization_thread_proc'.
-    
-    Fixes <https://bugs.gnu.org/37757>.
-    Reported by Jesse Gibbons <jgibbons2357@gmail.com>.
-    
-    * libguile/finalizers.c (finalization_thread_proc): Do not enter the
-    "switch (data.byte)" condition when data.n <= 0.
-
-diff --git a/libguile/finalizers.c b/libguile/finalizers.c
-index c5d69e8e3..94a6e6b0a 100644
---- a/libguile/finalizers.c
-+++ b/libguile/finalizers.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2012, 2013, 2014 Free Software Foundation, Inc.
-+/* Copyright (C) 2012, 2013, 2014, 2019 Free Software Foundation, Inc.
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public License
-@@ -211,21 +211,26 @@ finalization_thread_proc (void *unused)
- 
-       scm_without_guile (read_finalization_pipe_data, &data);
-       
--      if (data.n <= 0 && data.err != EINTR) 
-+      if (data.n <= 0)
-         {
--          perror ("error in finalization thread");
--          return NULL;
-+          if (data.err != EINTR)
-+            {
-+              perror ("error in finalization thread");
-+              return NULL;
-+            }
-         }
--
--      switch (data.byte)
-+      else
-         {
--        case 0:
--          scm_run_finalizers ();
--          break;
--        case 1:
--          return NULL;
--        default:
--          abort ();
-+          switch (data.byte)
-+            {
-+            case 0:
-+              scm_run_finalizers ();
-+              break;
-+            case 1:
-+              return NULL;
-+            default:
-+              abort ();
-+            }
-         }
-     }
- }