|
|
| version 1.3.4.2, 2012/01/24 14:04:58 | version 1.6.8.2, 2012/08/01 16:47:06 |
|---|---|
| Line 1 | Line 1 |
| #include <stdio.h> | #include <stdio.h> |
| #include <stdlib.h> | |
| #include <string.h> | |
| #include <unistd.h> | #include <unistd.h> |
| #include <fcntl.h> | #include <fcntl.h> |
| #include <signal.h> | |
| #include <sys/types.h> | #include <sys/types.h> |
| #include <sys/stat.h> | #include <sys/stat.h> |
| #include <sys/socket.h> | #include <sys/socket.h> |
| Line 23 void *eventlo(sched_task_t *arg) | Line 26 void *eventlo(sched_task_t *arg) |
| void *timer(sched_task_t *arg) | void *timer(sched_task_t *arg) |
| { | { |
| printf("Timer 10sec::\n"); | printf("Timer %p sec::\n", TASK_ARG(arg)); |
| return NULL; | return NULL; |
| } | } |
| void *r(sched_task_t *arg) | void *r(sched_task_t *arg) |
| { | { |
| printf("read::\n"); | printf("read:: bytes\n"); |
| Kill++; | Kill++; |
| return NULL; | return NULL; |
| } | } |
| Line 46 void *once(sched_task_t *arg) | Line 49 void *once(sched_task_t *arg) |
| return NULL; | return NULL; |
| } | } |
| void *aioread(sched_task_t *arg); | |
| void *aiowrite(sched_task_t *arg) | |
| { | |
| char *ole = malloc(BUFSIZ); | |
| printf("AIO write[%d]:: %d bytes\n", TASK_FD(arg), (int) TASK_DATLEN(arg)); | |
| free(TASK_DATA(arg)); | |
| schedAIORead(TASK_ROOT(arg), aioread, NULL, TASK_FD(arg), ole, BUFSIZ); | |
| return NULL; | |
| } | |
| void *aioread(sched_task_t *arg) | |
| { | |
| char *ole = malloc(BUFSIZ); | |
| printf("AIO read[%d]:: %d bytes\n%s\n-------\n", TASK_FD(arg), (int) TASK_DATLEN(arg), | |
| (char*) TASK_DATA(arg)); | |
| if (TASK_ARG(arg)) { | |
| write((int) TASK_ARG(arg), TASK_DATA(arg), TASK_DATLEN(arg)); | |
| schedAIOWrite(TASK_ROOT(arg), aiowrite, TASK_ARG(arg), TASK_FD(arg), ole, | |
| strlcpy(ole, "++++++BAHURA OR CULTURE .... A CULTURE OR BAHURA :-)\n", BUFSIZ)); | |
| } | |
| free(TASK_DATA(arg)); | |
| return NULL; | |
| } | |
| void sig(int s) | |
| { | |
| switch (s) { | |
| case SIGTERM: | |
| Kill++; | |
| break; | |
| } | |
| } | |
| int | int |
| main(int argc, char **argv) | main(int argc, char **argv) |
| { | { |
| sched_root_task_t *root; | sched_root_task_t *root; |
| int f; | int f, fd; |
| struct sockaddr_in sin; | struct sockaddr_in sin; |
| struct timespec ts = { 10, 0 }; | struct timespec ts = { 20, 0 }; |
| // struct timespec p = { 0, 10000000 }; | |
| struct sigaction sa; | |
| char *ole = malloc(BUFSIZ); | |
| sa.sa_handler = sig; | |
| sigemptyset(&sa.sa_mask); | |
| sigaction(SIGTERM, &sa, NULL); | |
| f = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); | f = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); |
| if (f == -1) | if (f == -1) |
| return 1; | return 1; |
| Line 64 main(int argc, char **argv) | Line 112 main(int argc, char **argv) |
| if (bind(f, (struct sockaddr*) &sin, sizeof sin) == -1) | if (bind(f, (struct sockaddr*) &sin, sizeof sin) == -1) |
| return 1; | return 1; |
| fd = open("test_aio.dat", O_CREAT | O_RDWR, 0644); | |
| if (fd == -1) | |
| return 1; | |
| printf("fd=%d\n", fd); | |
| root = schedBegin(); | root = schedBegin(); |
| if (!root) { | if (!root) { |
| printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); | printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| return 1; | return 1; |
| } | } |
| if (!schedTimer(root, timer, (void*) (intptr_t) 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*) (intptr_t) 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)) { | if (!schedEvent(root, event, "piuk", 1234, NULL, 0)) { |
| printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); | printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError()); |
| return 2; | return 2; |
| Line 80 main(int argc, char **argv) | Line 144 main(int argc, char **argv) |
| return 3; | return 3; |
| } | } |
| if (!schedTimer(root, timer, "blah", 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 95 main(int argc, char **argv) | Line 159 main(int argc, char **argv) |
| return 6; | return 6; |
| } | } |
| if (!schedAIORead(root, aioread, (void*) f, fd, ole, BUFSIZ)) | |
| printf("Warning:: #%d - %s\n", sched_GetErrno(), sched_GetError()); | |
| schedCallOnce(root, once, "000000", 42, NULL, 0); | schedCallOnce(root, once, "000000", 42, NULL, 0); |
| // schedPolling(root, &p, NULL); | |
| schedRun(root, &Kill); | schedRun(root, &Kill); |
| schedEnd(&root); | schedEnd(&root); |
| close(fd); | |
| close(f); | close(f); |
| return 0; | return 0; |
| } | } |