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) ?