[polyml] 03/03: Fix interpreter assertion failure on exit and HP PA-RISC deadlock

James Clarke jrtc27-guest at moszumanska.debian.org
Tue Apr 12 22:32:01 UTC 2016


This is an automated email from the git hooks/post-receive script.

jrtc27-guest pushed a commit to branch master
in repository polyml.

commit ed4d56915865c5459b228a5cf9e25ee7b2793b27
Author: James Clarke <jrtc27 at jrtc27.com>
Date:   Tue Apr 12 22:55:32 2016 +0100

    Fix interpreter assertion failure on exit and HP PA-RISC deadlock
---
 debian/changelog                                     |  5 +++++
 debian/patches/series                                |  1 +
 .../thread-exited-interrupt-requested-overlap.diff   | 20 ++++++++++++++++++++
 3 files changed, 26 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index a8830a7..779a572 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,11 @@ polyml (5.6-5) UNRELEASED; urgency=low
   * Removed patches:
     - request-completed-volatile-barrier.diff: Not a correct fix, as discussed
     with upstream in https://github.com/polyml/polyml/pull/49.
+  * New patches:
+    - thread-exited-interrupt-requested-overlap.diff: Fix threadExited and
+    interrupt_requested overlapping. This fixes an occasional assertion
+    failure on exit with the interpreted version, as well as the deadlock
+    sometimes experienced on hppa.
 
  -- James Clarke <jrtc27 at jrtc27.com>  Tue, 12 Apr 2016 22:48:08 +0100
 
diff --git a/debian/patches/series b/debian/patches/series
index 173b9bd..d44a58f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -23,3 +23,4 @@ maxhostnamelen.diff
 sparc64.diff
 sh.diff
 hppa.diff
+thread-exited-interrupt-requested-overlap.diff
diff --git a/debian/patches/thread-exited-interrupt-requested-overlap.diff b/debian/patches/thread-exited-interrupt-requested-overlap.diff
new file mode 100644
index 0000000..752dc63
--- /dev/null
+++ b/debian/patches/thread-exited-interrupt-requested-overlap.diff
@@ -0,0 +1,20 @@
+Description: Fix threadExited and interrupt_requested overlapping
+ HAVE_PTHREAD isn't necessarily defined when processes.h is included, as
+ it is defined in processes.cpp, but not when included by interpret.cpp.
+ As a result, the root thread can believe that an interrupted thread has
+ been killed, prematurely deleting its task data. This fixes #9.
+Author: James Clarke <jrtc27 at jrtc27.com>
+Forwarded: https://github.com/polyml/polyml/pull/51
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/libpolyml/processes.h
++++ b/libpolyml/processes.h
+@@ -172,7 +172,7 @@
+ #ifdef HAVE_WINDOWS_H
+     LONGLONG lastCPUTime; // Used for profiling
+ #endif
+-#ifdef HAVE_PTHREAD
++#if ((!defined(_WIN32) || defined(__CYGWIN__)) && defined(HAVE_LIBPTHREAD) && defined(HAVE_PTHREAD_H))
+ public:
+     bool threadExited;
+ private:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/polyml.git



More information about the debian-science-commits mailing list