From: rrt Date: Tue, 13 Feb 2001 11:10:28 +0000 (+0000) Subject: [project @ 2001-02-13 11:10:28 by rrt] X-Git-Tag: Approximately_9120_patches~2656 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=7b76c2c11ad38257b1b0afd54db4634e7c0c7522;p=ghc-hetmet.git [project @ 2001-02-13 11:10:28 by rrt] Use MM timers on Windows even when not profiling, as threadDelay needs it to work properly. Flush stdout when quitting (in RtsUtils), as Linux glibc probably works now, and it reveals error messages that are otherwise truncated when one's program segfaults. --- diff --git a/ghc/rts/Itimer.c b/ghc/rts/Itimer.c index 6238391..43421b4 100644 --- a/ghc/rts/Itimer.c +++ b/ghc/rts/Itimer.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Itimer.c,v 1.19 2000/10/06 11:05:57 rrt Exp $ + * $Id: Itimer.c,v 1.20 2001/02/13 11:10:28 rrt Exp $ * * (c) The GHC Team, 1995-1999 * @@ -49,16 +49,6 @@ lnat total_ticks = 0; /* ticks left before next pre-emptive context switch */ int ticks_to_ctxt_switch = 0; -static -void -#if defined(mingw32_TARGET_OS) || (defined(cygwin32_TARGET_OS) && !defined(HAVE_SETITIMER)) -CALLBACK -handle_tick(UINT uID STG_UNUSED, UINT uMsg STG_UNUSED, DWORD dwUser STG_UNUSED, - DWORD dw1 STG_UNUSED, DWORD d STG_UNUSED); -#else -handle_tick(int unused STG_UNUSED); -#endif - /* ----------------------------------------------------------------------------- Tick handler @@ -116,14 +106,11 @@ LPTIMECALLBACK vtalrm_cback; nat initialize_virtual_timer(nat ms) { -# ifdef PROFILING /* On Win32 setups that don't have support for setitimer(), we use the MultiMedia API's timer support. - As the delivery of ticks isn't free, we only - enable it if we really needed, i.e., when profiling. - (GetTickCount is used for threadDelay) + The delivery of ticks isn't free; the performance hit should be checked. */ unsigned int delay; static unsigned int vtalrm_id; @@ -143,7 +130,6 @@ initialize_virtual_timer(nat ms) timeKillEvent(vtalrm_id); timeEndPeriod(1); } -# endif return 0; } diff --git a/ghc/rts/RtsUtils.c b/ghc/rts/RtsUtils.c index 81e01a6..1967290 100644 --- a/ghc/rts/RtsUtils.c +++ b/ghc/rts/RtsUtils.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: RtsUtils.c,v 1.17 2000/07/17 15:15:40 rrt Exp $ + * $Id: RtsUtils.c,v 1.18 2001/02/13 11:10:28 rrt Exp $ * * (c) The GHC Team, 1998-1999 * @@ -115,8 +115,9 @@ stgReallocWords (void *p, int n, char *msg) void _stgAssert (char *filename, nat linenum) { - /* don't fflush(stdout); WORKAROUND bug in Linux glibc */ + fflush(stdout); fprintf(stderr, "ASSERTION FAILED: file %s, line %u\n", filename, linenum); + fflush(stderr); abort(); }