--- libaitsched/example/test.c 2011/10/04 12:34:33 1.2 +++ libaitsched/example/test.c 2012/05/14 12:09:12 1.5 @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -23,7 +24,7 @@ void *eventlo(sched_task_t *arg) void *timer(sched_task_t *arg) { - printf("Timer 10sec::\n"); + printf("Timer %ld sec::\n", (intptr_t) TASK_ARG(arg)); return NULL; } @@ -46,13 +47,29 @@ void *once(sched_task_t *arg) return NULL; } +void sig(int s) +{ + switch (s) { + case SIGTERM: + Kill++; + break; + } +} + int main(int argc, char **argv) { sched_root_task_t *root; int f; struct sockaddr_in sin; + struct timespec ts = { 20, 0 }; +// struct timespec p = { 0, 10000000 }; + struct sigaction sa; + sa.sa_handler = sig; + sigemptyset(&sa.sa_mask); + sigaction(SIGTERM, &sa, NULL); + f = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if (f == -1) return 1; @@ -69,33 +86,45 @@ main(int argc, char **argv) return 1; } - if (!schedEvent(root, event, "piuk", 1234)) { + if (!schedTimer(root, timer, (void*) ts.tv_sec, ts, NULL, 0)) { printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); + return 4; + } else + ts.tv_sec = 15; + if (!schedTimer(root, timer, (void*) ts.tv_sec, ts, NULL, 0)) { + printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); + return 4; + } else + ts.tv_sec = 10; + + if (!schedEvent(root, event, "piuk", 1234, NULL, 0)) { + printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); return 2; } - if (!schedEventLo(root, eventlo, "piuk", 1111)) { + if (!schedEventLo(root, eventlo, "piuk", 1111, NULL, 0)) { printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); return 3; } - if (!schedTimer(root, timer, "blah", 10000000)) { + if (!schedTimer(root, timer, (void*) ts.tv_sec, ts, NULL, 0)) { printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); return 4; } - if (!schedRead(root, r, "rrr", f)) { + if (!schedRead(root, r, "rrr", f, NULL, 0)) { printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); return 5; } - if (!schedWrite(root, w, "www", f)) { + if (!schedWrite(root, w, "www", f, NULL, 0)) { printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); return 6; } - schedCallOnce(root, once, "000000", 42); + schedCallOnce(root, once, "000000", 42, NULL, 0); +// schedPolling(root, &p, NULL); schedRun(root, &Kill); schedEnd(&root);