Skip to contentSkip to conversation

timer_create not working in 2.6.5

DISCUSSION Amol 1 participant 1 message Aug 28, 2004

lore
Share & tools
lore

Amol

author
#0 lore raw

Hi,
My system has fedora-core-2. I tried to run this small program to
create a posix time but it seems it is giving me wrong timer-id.. some garbage number. Finally program segfaults in timer_settime( not included here)

Any clues ?
Please CC me
Amol

--------------

#include <time.h>
#include <signal.h>
#include <unistd.h>

void timer_handler(int signo, siginfo_t *info, void *context)

{
        printf("got signal..\n");
}
int main(){
        struct timespec ts, tm, sleep;
        sigset_t mask;
        siginfo_t info;
        struct sigevent sigev;
        struct sigaction sa;
        struct itimerspec ival;
        timer_t tid;

        sigemptyset(&mask);
        sigprocmask(SIG_SETMASK, &mask, NULL);

        sa.sa_flags = SA_SIGINFO;
        sigemptyset(&sa.sa_mask);
        sa.sa_sigaction = timer_handler;

        if (sigaction(SIGRTMIN, &sa, NULL) == -1) {
                perror("sigaction failed");
                return -1;
        }

        sigev.sigev_notify = SIGEV_SIGNAL;
        sigev.sigev_signo = SIGRTMIN;
        sigev.sigev_value.sival_int = 1;

        if (timer_create(CLOCK_MONOTONIC, &sigev, &tid) == -1){
                perror("timer_create");
                return -1;
        }
        printf("timer-id = %d\n", tid);
}