[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[glibc] 01/01: hurd-i386/tg-eintr.diff: Fix "Interrupted" issues in ghc



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

sthibault pushed a commit to branch sid
in repository glibc.

commit 7275384d9da47170acadcf33c5dc8fa94b83d1e5
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Thu Jun 9 01:20:23 2016 +0200

    hurd-i386/tg-eintr.diff: Fix "Interrupted" issues in ghc
---
 debian/changelog                       |  3 +++
 debian/patches/hurd-i386/tg-eintr.diff | 31 +++++++++++++++++++++++++++++++
 debian/patches/series                  |  1 +
 3 files changed, 35 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index e4f3a0b..c17aff5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,9 @@ glibc (2.22-12) UNRELEASED; urgency=medium
   [ Aurelien Jarno ]
   * debian/sysdeps/kfreebsd-i386.mk: fix libc0.1-i686 package name.
 
+  [ Samuel Thibault ]
+  * hurd-i386/tg-eintr.diff: New patch to fix "Interrupted" issues in ghc.
+
  -- Aurelien Jarno <aurel32@debian.org>  Sun, 05 Jun 2016 00:41:17 +0200
 
 glibc (2.22-11) unstable; urgency=medium
diff --git a/debian/patches/hurd-i386/tg-eintr.diff b/debian/patches/hurd-i386/tg-eintr.diff
new file mode 100644
index 0000000..e9aea13
--- /dev/null
+++ b/debian/patches/hurd-i386/tg-eintr.diff
@@ -0,0 +1,31 @@
+commit 230b85f414291ac955827aba15cfbd103ab6ebdd
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date:   Thu Jun 9 01:15:10 2016 +0200
+
+    Fix pipe() call returning EINTR sometimes
+    
+    because it uses a critical section
+
+diff --git a/hurd/hurdsock.c b/hurd/hurdsock.c
+index 0f52f37..261f654 100644
+--- a/hurd/hurdsock.c
++++ b/hurd/hurdsock.c
+@@ -52,6 +52,7 @@ _hurd_socket_server (int domain, int dead)
+       return MACH_PORT_NULL;
+     }
+ 
++retry:
+   HURD_CRITICAL_BEGIN;
+   __mutex_lock (&lock);
+ 
+@@ -102,6 +103,10 @@ _hurd_socket_server (int domain, int dead)
+   __mutex_unlock (&lock);
+   HURD_CRITICAL_END;
+ 
++  if (!server && errno == EINTR)
++    /* Got a signal while inside an RPC of the critical section, retry again */
++    goto retry;
++
+   return server;
+ }
+ 
diff --git a/debian/patches/series b/debian/patches/series
index a227a88..c76a00e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -160,6 +160,7 @@ hurd-i386/cvs-IPV6_PKTINFO.diff
 hurd-i386/cvs-i686-link.diff
 hurd-i386/cvs-check-local-headers.diff
 hurd-i386/tg-faccessat.diff
+hurd-i386/tg-eintr.diff
 
 i386/local-biarch.diff
 i386/local-cmov.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git


Reply to: