|
|
| version 1.14.30.2, 2023/02/24 16:20:06 | version 1.16, 2026/05/19 15:53:56 |
|---|---|
| Line 15 intptr_t Kill[1]; | Line 15 intptr_t Kill[1]; |
| #ifdef AIO_SUPPORT | #ifdef AIO_SUPPORT |
| struct iovec iv[3], wiv[3], riv[3]; | struct iovec iv[3], wiv[3], riv[3]; |
| #endif | #endif |
| volatile uint64_t total; | |
| void *event(sched_task_t *arg) | void *event(sched_task_t *arg) |
| { | { |
| Line 136 void sig(int s) | Line 137 void sig(int s) |
| { | { |
| switch (s) { | switch (s) { |
| case SIGTERM: | case SIGTERM: |
| case SIGINT: | |
| printf("I'm in switch case %d\n", s); | |
| Kill[0]++; | Kill[0]++; |
| break; | break; |
| case SIGHUP: | case SIGHUP: |
| Line 156 void *sigt(sched_task_t *arg) | Line 159 void *sigt(sched_task_t *arg) |
| taskExit(arg, NULL); | taskExit(arg, NULL); |
| } | } |
| static void* | |
| prof(void *task, void *stage) | |
| { | |
| sched_task_t *t = task; | |
| struct timespec ts; | |
| static volatile uint64_t ns; | |
| clock_gettime(CLOCK_MONOTONIC, &ts); | |
| if (!stage) | |
| ns = (uint64_t) ts.tv_sec * 1000000000LL + ts.tv_nsec; | |
| else { | |
| ns = (uint64_t) ts.tv_sec * 1000000000LL + ts.tv_nsec - ns; | |
| printf("Task ran for %lu ns: id=%p type=%d call=%p -> #%ld\n", ns, | |
| TASK_ID(t), TASK_TYPE(t), TASK_FUNC(t), TASK_RET(t)); | |
| total += ns; | |
| } | |
| return NULL; | |
| } | |
| int | int |
| main(int argc, char **argv) | main(int argc, char **argv) |
| { | { |
| Line 163 main(int argc, char **argv) | Line 187 main(int argc, char **argv) |
| int f, fd; | int f, fd; |
| struct sockaddr_in sin; | struct sockaddr_in sin; |
| struct timespec ts = { 20, 0 }; | struct timespec ts = { 20, 0 }; |
| // struct timespec p = { 0, 10000000 }; | struct timespec p = { 0, 10000000 }; |
| // struct sigaction sa; | // struct sigaction sa; |
| sched_task_t *t; | sched_task_t *t; |
| #ifdef AIO_SUPPORT | #ifdef AIO_SUPPORT |
| Line 200 main(int argc, char **argv) | Line 224 main(int argc, char **argv) |
| return 1; | return 1; |
| } | } |
| if (argc > 1) | |
| ROOT_PROFILING(root, prof); | |
| if (!schedTimer(root, timer, (void*) (intptr_t) ts.tv_sec, ts, NULL, 0)) { | if (!schedTimer(root, timer, (void*) (intptr_t) ts.tv_sec, ts, NULL, 0)) { |
| printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); | printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| return 4; | return 4; |
| Line 317 main(int argc, char **argv) | Line 344 main(int argc, char **argv) |
| schedSignal(root, sigt, NULL, SIGTERM, NULL, 0); | schedSignal(root, sigt, NULL, SIGTERM, NULL, 0); |
| schedSignal(root, sigt, NULL, SIGINT, NULL, 0); | schedSignal(root, sigt, NULL, SIGINT, NULL, 0); |
| // schedPolling(root, &p, NULL); | schedPolling(root, &p, NULL); |
| schedSignalDispatch(root, 42); | schedSignalDispatch(root, 42); |
| schedRun(root, Kill); | schedRun(root, Kill); |
| schedSignalDispatch(root, 0); | schedSignalDispatch(root, 0); |
| Line 331 main(int argc, char **argv) | Line 358 main(int argc, char **argv) |
| close(fd); | close(fd); |
| close(f); | close(f); |
| if (argc > 1) | |
| printf("Total spend of time for all tasks = %lu\n", total); | |
| return 0; | return 0; |
| } | } |