Annotation of libaitsched/example/test_time.c, revision 1.3
1.2 misho 1: #include <stdio.h>
2: #include <unistd.h>
3: #include <fcntl.h>
4: #include <sys/types.h>
5: #include <sys/stat.h>
6: #include <sys/signal.h>
7: #include <netinet/in.h>
8: #include <aitsched.h>
9:
10: intptr_t Kill;
11:
12: void *event(sched_task_t *arg)
13: {
14: printf("Event::\n");
15: return NULL;
16: }
17:
18: void *eventlo(sched_task_t *arg)
19: {
20: printf("EventLOW::\n");
21: return NULL;
22: }
23:
24: void *timer(sched_task_t *arg)
25: {
26: printf("Timer %ld sec::\n", (intptr_t) TASK_ARG(arg));
27: return NULL;
28: }
29:
1.3 ! misho 30: void *alarmz(sched_task_t *arg)
! 31: {
! 32: printf("Alarm %ld sec::\n", (intptr_t) TASK_ARG(arg));
! 33: return NULL;
! 34: }
! 35:
1.2 misho 36: void *once(sched_task_t *arg)
37: {
38: printf("once::\n");
39: return NULL;
40: }
41:
42: void sig(int s)
43: {
44: switch (s) {
45: case SIGTERM:
46: Kill++;
47: break;
48: }
49: }
50:
51: int
52: main(int argc, char **argv)
53: {
54: sched_root_task_t *root;
55: struct timespec ts = { 20, 0 };
56: // struct timespec p = { 0, 10000000 };
57:
58: signal(SIGTERM, sig);
59:
60: root = schedBegin();
61: if (!root) {
62: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
63: return 1;
64: }
65:
66: if (!schedTimer(root, timer, (void*) ts.tv_sec, ts, NULL, 0)) {
67: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
68: return 4;
69: } else
70: ts.tv_sec = 15;
71: if (!schedTimer(root, timer, (void*) ts.tv_sec, ts, NULL, 0)) {
72: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
73: return 4;
74: } else
75: ts.tv_sec = 10;
76:
77: if (!schedEvent(root, event, "piuk", 1234, NULL, 0)) {
78: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
79: return 2;
80: }
81:
82: if (!schedEventLo(root, eventlo, "piuk", 1111, NULL, 0)) {
83: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
84: return 3;
85: }
86:
87: if (!schedTimer(root, timer, (void*) ts.tv_sec, ts, NULL, 0)) {
88: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
89: return 4;
90: }
91:
1.3 ! misho 92: if (!schedAlarm(root, alarmz, (void*) ts.tv_sec, ts, NULL, 0)) {
! 93: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
! 94: return 5;
! 95: } else {
! 96: ts.tv_sec = 3;
! 97: ts.tv_nsec = 500000000;
! 98: }
! 99:
! 100: if (!schedAlarm(root, alarmz, (void*) ts.tv_sec, ts, (void*) 1, 0)) {
! 101: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
! 102: return 5;
! 103: }
! 104: if (!schedAlarm(root, alarmz, (void*) ts.tv_sec, ts, (void*) 2, 0)) {
! 105: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
! 106: return 5;
! 107: } else {
! 108: ts.tv_sec = 0;
! 109: ts.tv_nsec = 700000000;
! 110: }
! 111: if (!schedAlarm(root, alarmz, (void*) ts.tv_sec, ts, (void*) 3, 0)) {
! 112: printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
! 113: return 5;
! 114: }
! 115:
1.2 misho 116: schedCallOnce(root, once, "000000", 42, NULL, 0);
117:
118: printf("read_queue=%d timer_queue=%d\n",
119: ROOT_QUEUE_EMPTY(root, read), ROOT_QUEUE_EMPTY(root, timer));
120:
121: // schedPolling(root, &p, NULL);
122: schedRun(root, &Kill);
123: schedEnd(&root);
124: return 0;
125: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>