Solaris 8 (SunOS 5.8) - x ido utan a setitimer(2) nem hivja meg a callback fuggvenyt... miernem?

Elofordult mar valakivel, hogy irt egy kellemes kis daemon-t Solarisra, ami random idonkent egyszercsak "megall".

Ezt ugy ertem, hogy leven daemon-kent fut, a while(true) loop-on belul alarmokon keresztul tortennek az esemenyek. De mi tortenik akkor, hogyha egyszercsak nem jon SIGALRM? Nem tudok rajonni miert nem.

A setitimer(2) minden korben jo ertekkel (0) -val ter vissza, tehat nem arrol van szo, hogy nem sikerult beallitani az ujabb timert.

Viszont X ido mulva egyszercsak csoki. Lehet ez 1 ora lehet ez 5 perc. Picit ki vagyok mar akadva. :)

A kod ide vonaktozo resze a kovetkezo:


    sigemptyset(&action.sa_mask);
    action.sa_flags = 0;
    action.sa_handler = ConnectViaTcp;      /* Callback function        */
    sigaction(SIGALRM, &action, NULL);                      /* Signal Type */
    getitimer( ITIMER_REAL, &pvalue );

    self_timer.it_interval.tv_sec   = g_iCycle_Interval;            /* Timer in Sec             */
    self_timer.it_interval.tv_usec  = 0;                    /* Timer in Usec            */
    self_timer.it_value.tv_sec      = g_iCycle_Interval;    /* The first timer is 10s!  */
    self_timer.it_value.tv_usec     = 0;    /* Timer in Usec            */
    result = setitimer(ITIMER_REAL, &self_timer, NULL);

Szepen a megadott intervallumon belul lefut gyonyoruen a dolog, mignem egyszercsak "a nagy nema csend es semmi mas..."

Valami otlet, hogy mi befolyasolhatja ezt a dolgot? Vagy valami mas jo modszer esetleg a timerezesre? alarm(2) ?

Hozzászólások

Doh..

Minden timer callback vegen ujrahuztam egy timert, ettol egy ido utan behulyult...

Kiszedve mukodik rendesen...

--
Live Free or Die
UNIX