From 7b76c2c11ad38257b1b0afd54db4634e7c0c7522 Mon Sep 17 00:00:00 2001 From: rrt Date: Tue, 13 Feb 2001 11:10:28 +0000 Subject: [PATCH] [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. --- ghc/rts/Itimer.c | 18 ++---------------- ghc/rts/RtsUtils.c | 5 +++-- 2 files changed, 5 insertions(+), 18 deletions(-) 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(); } -- 1.7.10.4