Interval timers on Fedora
Douglas Phillipson
phillipd at oem.doe.gov
Fri Aug 4 21:00:29 UTC 2006
John Wendel wrote:
> Douglas Phillipson wrote:
>> This probably isn't a Fedora specific question so I apologize if this
>> is the wrong forum.
>>
>> Anybody know if you can set more than one interval timer in a single
>> process?
>>
>> (setitimer())
>>
>> Would starting more than one interval timer in a single process
>> confuse the signal system when delivering the SIGALRM to the receiving
>> process?
>>
>> In other words, can I have a 10 second interval timer which when times
>> out delivers a sigalrm to one function, and in the same process have a
>> 1 second interval timer set to give a sigalrm to another function?
>>
>> I'm having trouble with a second interval timer, it doesn't seem to
>> work, or deliver the signal to the desired function. I'm using a
>> separate instance of struct itimerval and struct sigaction when
>> setting up the timers. I have several books on the subject of
>> interval timers but none say you shouldn't do this, just "Every
>> process has its own set of timers". But they might be referring to
>> REAL, VIRTUAL, and PROF timers, a single set of these for each process.
>>
>> Opinions requested...
>>
>> Thanks
>>
>> Doug P
>>
>
> I'm not an expert on this stuff, but my understanding is that setitimer
> gives your process access to one of three predefined timers (REAL,
> VIRTUAL, and PROF) and only the REAL timer is actually useful.
> So your second call to setitimer is mucking up the settings from the
> first call.
>
> See "man timer_create" for the POSIX timer stuff that lets you have lots
> of timers.
>
> I recommend the O'REILLY book POSIX 4 by Bill Gallmeister for a good
> explanation of this fairly complicated topic.
>
> Regards,
>
> John
>
My result on the timer issue is that a interval timer won't call its
timeout function while msgrcv() is waiting for a message on a queue.
Regards
Doug P
More information about the fedora-list
mailing list