From 701c4dad8cd968aaf2fada16ab3836c353600d45 Mon Sep 17 00:00:00 2001
From: simonmar <unknown>
Date: Wed, 26 Apr 2000 10:17:41 +0000
Subject: [PATCH] [project @ 2000-04-26 10:17:41 by simonmar] Give a more
 informative error message in rts_checkSchedStatus().

---
 ghc/rts/RtsAPI.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/ghc/rts/RtsAPI.c b/ghc/rts/RtsAPI.c
index 7ab8b444bc75..992be891a577 100644
--- a/ghc/rts/RtsAPI.c
+++ b/ghc/rts/RtsAPI.c
@@ -1,5 +1,5 @@
 /* ----------------------------------------------------------------------------
- * $Id: RtsAPI.c,v 1.16 2000/04/25 14:57:39 simonmar Exp $
+ * $Id: RtsAPI.c,v 1.17 2000/04/26 10:17:41 simonmar Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
@@ -384,11 +384,19 @@ rts_evalNothing(unsigned int stack_size)
 
 /* Convenience function for decoding the returned status. */
 
-void rts_checkSchedStatus ( char* site, SchedulerStatus rc )
-{
-  if ( rc == Success ) {
-     return;
-  } else {
-     barf("%s: Return code (%d) not ok",(site),(rc));
-  }
+void
+rts_checkSchedStatus ( char* site, SchedulerStatus rc )
+{
+    switch (rc) {
+    case Success:
+	return;
+    case Killed:
+	barf("%s: uncaught exception",site);
+    case Interrupted:
+	barf("%s: interrupted", site);
+    case Deadlock:
+	barf("%s: no threads to run:  infinite loop or deadlock?", site);
+    default:
+	barf("%s: Return code (%d) not ok",(site),(rc));	
+    }
 }
-- 
GitLab