• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit setitimer()-Funktion C / C++

toffa

Newbie
Hallo,
ich habe ein Problem mit der Standardfuntion setitimer() unter Suse 10.3

timer_val.it_value.tv_sec = 0;
timer_val.it_value.tv_usec = 900000;
setitimer(ITIMER_REAL, &timer_val, NULL);

durch diese Aufrufe sollte das Systemsignal SIGALRM nach den 900 ms beim Prozess ankommen. Der Signalhandler ist eingerichtet - funktioniert auch - da ein manuelles Senden des SIgnals an den Prozess funktioniert.

Problem:
Unter Suse 10.2 kommt das Signal wie gewünscht beim Prozess an.
Unter Suse 10.3 ist dies nicht mehr so. Es kommt einfach kein Signal an.
( an mehreren Rechnern getestet)

Woran könnte dies liegen ?

Gruß
 
Auch unter 10.2 kriege ich das Signal nur einmal. Aber die Manpage sagt ja schon:
When any timer expires, a signal is sent to the process, and the timer (potentially) restarts.
Aber unter Linux gilt eben potentially not, auch im Kernel scheint das so verankert, dort steht explizit HRTIMER_NORESTART in kernel/itimer.c.
 
OP
T

toffa

Newbie
aber ich bekomme unter suse 10.3 nicht ein einziges Mal das Signal.
Hab allerdings den Rückgabewert der setitimer()-Funktion noch nich abgefragt, weil das Progamm unter 10.2 gut lief und läuft.
Werde den Rückgabewert am Montag mal posten. - Vorher komme ich nicht mehr an die Suse installation ran.
 
Oben