slyfox      15/08/01 21:22:03

  Added:                ghc-7.10.1-T10590-dequeue.patch
                        ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch
  Log:
  Version bump, bug #544668 by Jonas Jelten
  
  (Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key 
611FF3AA)

Revision  Changes    Path
1.1                  dev-lang/ghc/files/ghc-7.10.1-T10590-dequeue.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ghc/files/ghc-7.10.1-T10590-dequeue.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ghc/files/ghc-7.10.1-T10590-dequeue.patch?rev=1.1&content-type=text/plain

Index: ghc-7.10.1-T10590-dequeue.patch
===================================================================
diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c
index 3b206ff..08c031c 100644
--- a/rts/RaiseAsync.c
+++ b/rts/RaiseAsync.c
@@ -56,7 +56,8 @@ static void throwToSendMsg (Capability *cap USED_IF_THREADS,
 
 static void
 throwToSingleThreaded__ (Capability *cap, StgTSO *tso, StgClosure *exception,
-                         rtsBool stop_at_atomically, StgUpdateFrame *stop_here)
+                         rtsBool stop_at_atomically, StgUpdateFrame *stop_here,
+                         rtsBool dequeue)
 {
     // Thread already dead?
     if (tso->what_next == ThreadComplete || tso->what_next == ThreadKilled) {
@@ -64,7 +65,9 @@ throwToSingleThreaded__ (Capability *cap, StgTSO *tso, 
StgClosure *exception,
     }
 
     // Remove it from any blocking queues
-    removeFromQueues(cap,tso);
+    if (dequeue) {
+        removeFromQueues(cap,tso);
+    }
 
     raiseAsync(cap, tso, exception, stop_at_atomically, stop_here);
 }
@@ -72,20 +75,26 @@ throwToSingleThreaded__ (Capability *cap, StgTSO *tso, 
StgClosure *exception,
 void
 throwToSingleThreaded (Capability *cap, StgTSO *tso, StgClosure *exception)
 {
-    throwToSingleThreaded__(cap, tso, exception, rtsFalse, NULL);
+    throwToSingleThreaded__(cap, tso, exception, rtsFalse, NULL, rtsTrue);
+}
+
+void
+throwToSingleThreadedNoDequeue (Capability *cap, StgTSO *tso, StgClosure 
*exception)
+{
+    throwToSingleThreaded__(cap, tso, exception, rtsFalse, NULL, rtsFalse);
 }
 
 void
 throwToSingleThreaded_ (Capability *cap, StgTSO *tso, StgClosure *exception,
                         rtsBool stop_at_atomically)
 {
-    throwToSingleThreaded__ (cap, tso, exception, stop_at_atomically, NULL);
+    throwToSingleThreaded__ (cap, tso, exception, stop_at_atomically, NULL, 
rtsTrue);
 }
 
 void // cannot return a different TSO
 suspendComputation (Capability *cap, StgTSO *tso, StgUpdateFrame *stop_here)
 {
-    throwToSingleThreaded__ (cap, tso, NULL, rtsFalse, stop_here);
+    throwToSingleThreaded__ (cap, tso, NULL, rtsFalse, stop_here, rtsTrue);
 }
 
 /* 
-----------------------------------------------------------------------------
diff --git a/rts/RaiseAsync.h b/rts/RaiseAsync.h
index 6bfed8d..2e8a7a3 100644
--- a/rts/RaiseAsync.h
+++ b/rts/RaiseAsync.h
@@ -23,6 +23,10 @@ void throwToSingleThreaded (Capability *cap,
                             StgTSO *tso,
                             StgClosure *exception);
 
+void throwToSingleThreadedNoDequeue (Capability *cap,
+                                     StgTSO *tso,
+                                     StgClosure *exception);
+
 void throwToSingleThreaded_ (Capability *cap,
                              StgTSO *tso,
                              StgClosure *exception,
diff --git a/rts/posix/Select.c b/rts/posix/Select.c
index 4b19235..6889499 100644
--- a/rts/posix/Select.c
+++ b/rts/posix/Select.c
@@ -412,8 +412,12 @@ awaitEvent(rtsBool wait)
                   IF_DEBUG(scheduler,
                       debugBelch("Killing blocked thread %lu on bad fd=%i\n",
                                  (unsigned long)tso->id, fd));
-                  throwToSingleThreaded(&MainCapability, tso,
-                                        (StgClosure *)blockedOnBadFD_closure);
+                  /*
+                   * We can't use throwToSingleThreaded() here
+                   * as 'RTS_FD_IS_READY' breaks blocked_queue_hd list
+                   */
+                  throwToSingleThreadedNoDequeue(&MainCapability, tso,
+                                                 (StgClosure 
*)blockedOnBadFD_closure);
                   break;
               case RTS_FD_IS_READY:
                   IF_DEBUG(scheduler,



1.1                  dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch?rev=1.1&content-type=text/plain

Index: ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch
===================================================================
--- ghc-7.10.0.20150316-orig/compiler/utils/Pair.hs     2015-03-10 
05:43:13.000000000 +1100
+++ ghc-7.10.0.20150316/compiler/utils/Pair.hs  2015-03-17 09:50:48.491115080 
+1100
@@ -15,6 +15,8 @@
 import Data.Foldable
 import Data.Monoid
 import Data.Traversable
+#else
+import Control.Applicative ((<$>))
 #endif
 
 data Pair a = Pair { pFst :: a, pSnd :: a }
--- ghc-7.10.0.20150316-orig/compiler/types/Coercion.hs 2015-03-10 
05:43:13.000000000 +1100
+++ ghc-7.10.0.20150316/compiler/types/Coercion.hs      2015-03-17 
10:11:21.636047380 +1100
@@ -104,6 +104,8 @@
 #if __GLASGOW_HASKELL__ < 709
 import Control.Applicative hiding ( empty )
 import Data.Traversable (traverse, sequenceA)
+#else
+import Control.Applicative ((<$>))
 #endif
 import FastString
 import ListSetOps
--- ghc-7.10.0.20150316-orig/compiler/typecheck/TcEvidence.hs   2015-03-14 
08:48:57.000000000 +1100
+++ ghc-7.10.0.20150316/compiler/typecheck/TcEvidence.hs        2015-03-17 
10:26:03.251433371 +1100
@@ -50,6 +50,8 @@
 #if __GLASGOW_HASKELL__ < 709
 import Control.Applicative
 import Data.Traversable (traverse, sequenceA)
+#else
+import Control.Applicative ((<$>))
 #endif
 import qualified Data.Data as Data
 import Outputable
--- ghc-7.10.0.20150316-orig/compiler/hsSyn/HsBinds.hs  2015-03-10 
05:43:13.000000000 +1100
+++ ghc-7.10.0.20150316/compiler/hsSyn/HsBinds.hs       2015-03-17 
10:42:21.459519033 +1100
@@ -47,6 +47,8 @@
 import Data.Traversable ( Traversable(..) )
 import Data.Monoid ( mappend )
 import Control.Applicative hiding (empty)
+#else
+import Control.Applicative ((<$>))
 #endif
 
 {-
--- ghc-7.10.0.20150316-orig/compiler/parser/RdrHsSyn.hs        2015-03-10 
05:43:13.000000000 +1100
+++ ghc-7.10.0.20150316/compiler/parser/RdrHsSyn.hs     2015-03-17 
11:17:48.950929542 +1100
@@ -91,9 +91,7 @@
 import Util
 import ApiAnnotation
 
-#if __GLASGOW_HASKELL__ < 709
 import Control.Applicative ((<$>))
-#endif
 import Control.Monad
 
 import Text.ParserCombinators.ReadP as ReadP
--- ghc-7.10.0.20150316-orig/compiler/typecheck/TcGenDeriv.hs   2015-03-14 
08:48:57.000000000 +1100
+++ ghc-7.10.0.20150316/compiler/typecheck/TcGenDeriv.hs        2015-03-17 
11:30:39.106508173 +1100
@@ -59,6 +59,8 @@
 import Var
 #if __GLASGOW_HASKELL__ < 709
 import MonadUtils
+#else
+import Control.Applicative ((<$>))
 #endif
 import Outputable
 import Lexeme
--- ghc-7.10.0.20150316-orig/compiler/vectorise/Vectorise/Exp.hs        
2015-03-10 05:43:13.000000000 +1100
+++ ghc-7.10.0.20150316/compiler/vectorise/Vectorise/Exp.hs     2015-03-17 
11:46:41.829481669 +1100
@@ -46,6 +46,8 @@
 import Util
 #if __GLASGOW_HASKELL__ < 709
 import MonadUtils
+#else
+import Control.Applicative ((<$>))
 #endif
 
 import Control.Monad




Reply via email to