alarm(2) erlaubt nur einen aktiven Countdown

Romsl

Erfahrenes Mitglied
Hi,

die POSIX alarm(2) function erlaubt leider nur einen aktiven Countdown. Sollen mehrere registriert werden dann gewinnt der als letztes eingetragene Countdown. Gibt es eine Möglichkeit eine eigene Funktion zu schreiben die beliebig viele timer(time) erlaubt?

Grüße,
-- Roman
 
Hi,

ich würde sagen, sowas kannst du nur threaded implementieren. Innerhalb der Thread-Funktion merkst du dir die Start-Zeit, lässt mit einer while-Schleife einfach hochzählen bis current_time - start_time dem Wert entspricht, den du als Parameter vergeben hast. Dann sendest du das SIGALRM einfach selbst mittels kill:

C++:
kill( getpid(), SIGALRM);
 
Zurück