|
|
| version 1.1.1.1, 2011/08/05 15:52:00 | version 1.1.1.1.2.1, 2011/08/05 15:57:47 |
|---|---|
| Line 119 sched_hook_cancel(void *task, void *arg __unused) | Line 119 sched_hook_cancel(void *task, void *arg __unused) |
| struct sched_IO *io; | struct sched_IO *io; |
| sched_task_t *t = task; | sched_task_t *t = task; |
| struct kevent chg[1]; | struct kevent chg[1]; |
| struct timespec timeout; | struct timespec timeout = { 0, 0 }; |
| if (!t || !t->task_root || !ROOT_DATA(t->task_root) || !ROOT_DATLEN(t->task_root)) | if (!t || !t->task_root || !ROOT_DATA(t->task_root) || !ROOT_DATLEN(t->task_root)) |
| return (void*) -1; | return (void*) -1; |
| else | else |
| io = ROOT_DATA(t->task_root); | io = ROOT_DATA(t->task_root); |
| timespecclear(&timeout); | |
| switch (t->task_type) { | switch (t->task_type) { |
| case taskREAD: | case taskREAD: |
| if (FD_ISSET(TASK_FD(t), &io->wfd)) | if (FD_ISSET(TASK_FD(t), &io->wfd)) |
| Line 165 sched_hook_read(void *task, void *arg __unused) | Line 164 sched_hook_read(void *task, void *arg __unused) |
| struct sched_IO *io; | struct sched_IO *io; |
| sched_task_t *t = task; | sched_task_t *t = task; |
| struct kevent chg[1]; | struct kevent chg[1]; |
| struct timespec timeout; | struct timespec timeout = { 0, 0 }; |
| if (!t || !t->task_root || !ROOT_DATA(t->task_root) || !ROOT_DATLEN(t->task_root)) | if (!t || !t->task_root || !ROOT_DATA(t->task_root) || !ROOT_DATLEN(t->task_root)) |
| return (void*) -1; | return (void*) -1; |
| Line 177 sched_hook_read(void *task, void *arg __unused) | Line 176 sched_hook_read(void *task, void *arg __unused) |
| else | else |
| FD_SET(TASK_FD(t), &io->rfd); | FD_SET(TASK_FD(t), &io->rfd); |
| timespecclear(&timeout); | |
| EV_SET(&chg[0], TASK_FD(t), EVFILT_READ, EV_ADD, 0, 0, &TASK_FD(t)); | EV_SET(&chg[0], TASK_FD(t), EVFILT_READ, EV_ADD, 0, 0, &TASK_FD(t)); |
| if (kevent(t->task_root->root_kq, chg, 1, NULL, 0, &timeout) == -1) { | if (kevent(t->task_root->root_kq, chg, 1, NULL, 0, &timeout) == -1) { |
| LOGERR; | LOGERR; |
| Line 199 sched_hook_write(void *task, void *arg __unused) | Line 197 sched_hook_write(void *task, void *arg __unused) |
| struct sched_IO *io; | struct sched_IO *io; |
| sched_task_t *t = task; | sched_task_t *t = task; |
| struct kevent chg[1]; | struct kevent chg[1]; |
| struct timespec timeout; | struct timespec timeout = { 0, 0 }; |
| if (!t || !t->task_root || !ROOT_DATA(t->task_root) || !ROOT_DATLEN(t->task_root)) | if (!t || !t->task_root || !ROOT_DATA(t->task_root) || !ROOT_DATLEN(t->task_root)) |
| return (void*) -1; | return (void*) -1; |
| Line 211 sched_hook_write(void *task, void *arg __unused) | Line 209 sched_hook_write(void *task, void *arg __unused) |
| else | else |
| FD_SET(TASK_FD(t), &io->wfd); | FD_SET(TASK_FD(t), &io->wfd); |
| timespecclear(&timeout); | |
| EV_SET(&chg[0], TASK_FD(t), EVFILT_WRITE, EV_ADD, 0, 0, &TASK_FD(t)); | EV_SET(&chg[0], TASK_FD(t), EVFILT_WRITE, EV_ADD, 0, 0, &TASK_FD(t)); |
| if (kevent(t->task_root->root_kq, chg, 1, NULL, 0, &timeout) == -1) { | if (kevent(t->task_root->root_kq, chg, 1, NULL, 0, &timeout) == -1) { |
| LOGERR; | LOGERR; |
| Line 307 retry: | Line 304 retry: |
| goto retry; | goto retry; |
| } | } |
| timespecclear(&nw); | nw.tv_sec = nw.tv_nsec = 0; |
| /* Go and catch the cat into pipes ... */ | /* Go and catch the cat into pipes ... */ |
| for (i = 0; i < en; i++) { | for (i = 0; i < en; i++) { |
| memcpy(evt, &res[i], sizeof evt); | memcpy(evt, &res[i], sizeof evt); |