In www.opengroup.org/onlinepubs/000095399/functions/timer_settime.html , it says "If the it_value member of value is zero, the timer shall be disarmed."
But in my code above, the timer will not be disarmed but expired immediately. Why? Does some one can help me? thanks. On Feb 21, 11:13 pm, Eric <[email protected]> wrote: > hi, > > I want to disalarm(stop) an active timer which was created by > timer_create routine with the following code, but it seems doesn't > work. > > The timer will expire immediately after the second timer_settime() on > G1. I found it will be disalarmed if i link these code with GNU's > librt.so library. > > ------------------------------------------------------------------------------- > struct sigevent se; > memset(&se, 0, sizeof(se)); > se.sigev_notify = SIGEV_THREAD; > se.sigev_notify_function = handler; > se.sigev_value.sival_int = id; > if(timer_create(CLOCK_REALTIME, &se, tid) < 0) > { > return -1; > } > struct itimerspec ts, ots; > ts.it_value.tv_sec = 5; > ts.it_value.tv_nsec = 0; > ts.it_interval.tv_sec = 0; > ts.it_interval.tv_nsec = 0; > if (timer_settime(*tid, 0, &ts, &ots) < 0) > { > return -1; > } > > /* now let's disalarm it */ > > ts.it_value.tv_sec = 0; > ts.it_value.tv_nsec = 0; > ts.it_interval.tv_sec = 0; > ts.it_interval.tv_nsec = 0; > if (timer_settime(*tid, 0, &ts, &ots) < 0) > { > return -1; > } > ---------------------------------------------------------------------------------- > > thanks. --~--~---------~--~----~------------~-------~--~----~ unsubscribe: [email protected] website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---
