From: simonmar Date: Wed, 26 Apr 2000 10:17:41 +0000 (+0000) Subject: [project @ 2000-04-26 10:17:41 by simonmar] X-Git-Tag: Approximately_9120_patches~4607 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=701c4dad8cd968aaf2fada16ab3836c353600d45;hp=c068eefd7befde47e7387f658aaa6cc8877b7e7f;p=ghc-hetmet.git [project @ 2000-04-26 10:17:41 by simonmar] Give a more informative error message in rts_checkSchedStatus(). --- diff --git a/ghc/rts/RtsAPI.c b/ghc/rts/RtsAPI.c index 7ab8b44..992be89 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)); + } }