tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

How to pause/continue itimer ?



Hello,

I have functional timer calling handler in 1 second intervals.

Initialization:

my_itimer_ops.TimerOps.ito_fire = MyTimerHandler;
my_itimer_ops.ito_realtime_changed = NULL;
itimer_init(&my_itimer, &my_itimer_ops, CLOCK_REALTIME, NULL);

Starting timer period in miliseconds:

getnanotime(&my_itimer.it_time.it_value);
my_itimer.it_time.it_interval.tv_sec = period / 1000;
my_itimer.it_time.it_interval.tv_nsec = (period % 1000) * 1000000;
itimer_settime(&my_itimer);

Then MyTimerHandler is called every second.
I need to pause it for some seconds and start again.

when I try:
itimer_poison(&my_itimer);
and use above starting sequence of code then MyTimerHandler is called only once and stops.

I also tried to release timer resources with:

itimer_fini(&my_itimer);
and after it I use above Initialization and Starting then
something is system stays damaged, tail -f /var/log/messages is slow
entering console command is slow and I need to restart OS.

My question are:
Does exist any way how to pause itimer and after some time start it again ?
Or can be struct itimer reused for next itimer initialization and starting at all ?






Home | Main Index | Thread Index | Old Index