[polyml] 07/09: Mark completed as volatile
James Clarke
jrtc27-guest at moszumanska.debian.org
Thu Apr 7 10:52:23 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 4d140ffafd179569ed31645c2d44d49f2082f792
Author: James Clarke <jrtc27 at jrtc27.com>
Date: Wed Apr 6 21:20:00 2016 +0100
Mark completed as volatile
---
debian/changelog | 2 ++
.../patches/request-completed-volatile-barrier.diff | 19 +++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 22 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 5b325cd..bd0b0f2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ polyml (5.6-4) UNRELEASED; urgency=low
* New patches:
- hppa.diff: Add support for hppa
- maxhostnamelen.diff: Remove all use of MAXHOSTNAMELEN
+ - request-completed-volatile-barrier.diff: Make MainThreadRequest
+ completed field volatile (fixes test suite deadlock on hppa)
- sh.diff: Add support for sh4
- sparc64.diff: Add support for sparc64
diff --git a/debian/patches/request-completed-volatile-barrier.diff b/debian/patches/request-completed-volatile-barrier.diff
new file mode 100644
index 0000000..accd0a7
--- /dev/null
+++ b/debian/patches/request-completed-volatile-barrier.diff
@@ -0,0 +1,19 @@
+Description: Make MainThreadRequest completed field volatile
+ This is accessed across threads and thus needs to be volatile in order
+ to avoid compiler optimisations breaking memory access order. This fixes
+ Tests/Succeed/Test120.ML sometimes deadlocking on HP PA-RISC.
+Author: James Clarke <jrtc27 at jrtc27.com>
+Forwarded: https://github.com/polyml/polyml/pull/49
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/libpolyml/processes.h
++++ b/libpolyml/processes.h
+@@ -225,7 +225,7 @@
+ MainThreadRequest (enum _mainThreadPhase phase): mtp(phase), completed(false) {}
+ virtual ~MainThreadRequest () {} // Suppress silly GCC warning
+ const enum _mainThreadPhase mtp;
+- bool completed;
++ volatile bool completed;
+ virtual void Perform() = 0;
+ };
+
diff --git a/debian/patches/series b/debian/patches/series
index 173b9bd..9b626dc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -23,3 +23,4 @@ maxhostnamelen.diff
sparc64.diff
sh.diff
hppa.diff
+request-completed-volatile-barrier.diff
--
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