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