#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/signal.h>
#include <netinet/in.h>
#include <aitsched.h>
intptr_t Kill;
void *event(sched_task_t *arg)
{
printf("Event::\n");
return NULL;
}
void *eventlo(sched_task_t *arg)
{
printf("EventLOW::\n");
return NULL;
}
void *timer(sched_task_t *arg)
{
printf("Timer %ld sec::\n", (intptr_t) TASK_ARG(arg));
return NULL;
}
void *once(sched_task_t *arg)
{
printf("once::\n");
return NULL;
}
void sig(int s)
{
switch (s) {
case SIGTERM:
Kill++;
break;
}
}
int
main(int argc, char **argv)
{
sched_root_task_t *root;
struct timespec ts = { 20, 0 };
// struct timespec p = { 0, 10000000 };
signal(SIGTERM, sig);
root = schedBegin();
if (!root) {
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
return 1;
}
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, NULL, 0)) {
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
return 3;
}
if (!schedTimer(root, timer, (void*) ts.tv_sec, ts, NULL, 0)) {
printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
return 4;
}
schedCallOnce(root, once, "000000", 42, NULL, 0);
printf("read_queue=%d timer_queue=%d\n",
ROOT_QUEUE_EMPTY(root, read), ROOT_QUEUE_EMPTY(root, timer));
// schedPolling(root, &p, NULL);
schedRun(root, &Kill);
schedEnd(&root);
return 0;
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>