X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=rts%2Fposix%2FItimer.c;h=3a09e804b5570e66c3bd7adb250c78b0e2831d4a;hb=6cf8982ac30be6836a0cdd8be5a6ac1a1a144213;hp=6b4ba3bb70edfdb414bffe25f224f8dba60eb336;hpb=31d797eb1b3c5aa07f928b58402529fd35b71bcc;p=ghc-hetmet.git diff --git a/rts/posix/Itimer.c b/rts/posix/Itimer.c index 6b4ba3b..3a09e80 100644 --- a/rts/posix/Itimer.c +++ b/rts/posix/Itimer.c @@ -16,15 +16,15 @@ * Hence, we use the old-fashioned @setitimer@ that just about everyone seems * to support. So much for standards. */ + +#include "PosixSource.h" #include "Rts.h" -#include "RtsFlags.h" -#include "Timer.h" + #include "Ticker.h" -#include "posix/Itimer.h" +#include "Itimer.h" #include "Proftimer.h" -#include "Storage.h" #include "Schedule.h" -#include "posix/Select.h" +#include "Select.h" /* As recommended in the autoconf manual */ # ifdef TIME_WITH_SYS_TIME @@ -80,9 +80,10 @@ #elif defined(HAVE_SETITIMER) -# ifdef THREADED_RTS +# if defined(THREADED_RTS) || !defined(HAVE_SETITIMER_VIRTUAL) // Oh dear, we have to use SIGALRM if there's no timer_create and // we're using the THREADED_RTS. This leads to problems, see bug #850. +// We also use it if we don't have a virtual timer (trac #2883). # define ITIMER_SIGNAL SIGALRM # define ITIMER_FLAVOUR ITIMER_REAL # else @@ -228,31 +229,6 @@ exitTicker(void) #endif } -#if 0 -/* Currently unused */ -void -block_vtalrm_signal(void) -{ - sigset_t signals; - - sigemptyset(&signals); - sigaddset(&signals, ITIMER_SIGNAL); - - (void) sigprocmask(SIG_BLOCK, &signals, NULL); -} - -void -unblock_vtalrm_signal(void) -{ - sigset_t signals; - - sigemptyset(&signals); - sigaddset(&signals, ITIMER_SIGNAL); - - (void) sigprocmask(SIG_UNBLOCK, &signals, NULL); -} -#endif - /* gettimeofday() takes around 1us on our 500MHz PIII. Since we're * only calling it 50 times/s, it shouldn't have any great impact. */