Commit f71b0247 authored by Simon Marlow's avatar Simon Marlow

fix build (sorry, forgot to push with previous patch)

parent eb647776
/* -----------------------------------------------------------------------------
*
* (c) The GHC Team, 1995-1999
* (c) The GHC Team, 1995-2007
*
* Interval timer for profiling and pre-emptive scheduling.
*
......@@ -95,9 +95,11 @@
#endif
#if defined(USE_TIMER_CREATE)
timer_t timer;
static timer_t timer;
#endif
static nat itimer_interval = 50;
static
void
install_vtalrm_handler(TickProc handle_tick)
......@@ -127,7 +129,7 @@ install_vtalrm_handler(TickProc handle_tick)
}
void
initTicker (TickProc handle_tick)
initTicker (nat ms, TickProc handle_tick)
{
install_vtalrm_handler(handle_tick);
......@@ -135,6 +137,8 @@ initTicker (TickProc handle_tick)
timestamp = getourtimeofday();
#endif
itimer_interval = ms;
#if defined(USE_TIMER_CREATE)
{
struct sigevent ev;
......@@ -151,14 +155,14 @@ initTicker (TickProc handle_tick)
}
void
startTicker(nat ms)
startTicker(void)
{
#if defined(USE_TIMER_CREATE)
{
struct itimerspec it;
it.it_value.tv_sec = ms / 1000;
it.it_value.tv_nsec = (ms % 1000) * 1000000;
it.it_value.tv_sec = itimer_interval / 1000;
it.it_value.tv_nsec = (itimer_interval % 1000) * 1000000;
it.it_interval = it.it_value;
if (timer_settime(timer, 0, &it, NULL) != 0) {
......@@ -170,8 +174,8 @@ startTicker(nat ms)
{
struct itimerval it;
it.it_value.tv_sec = ms / 1000;
it.it_value.tv_usec = (ms % 1000) * 1000;
it.it_value.tv_sec = itimer_interval / 1000;
it.it_value.tv_usec = (itimer_interval % 1000) * 1000;
it.it_interval = it.it_value;
if (setitimer(ITIMER_FLAVOUR, &it, NULL) != 0) {
......@@ -213,8 +217,10 @@ stopTicker(void)
void
exitTicker(void)
{
#if defined(USE_TIMER_CREATE)
timer_delete(timer);
// ignore errors - we don't really care if it fails.
#endif
}
#if 0
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment