X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=uloop.c;h=da6f690cfad63f100f38510d087e81350cc1ea2b;hb=a2fce001819ea5144652ecb9f828f892a1648fb8;hp=63428db041d7caa7674565017bb99a8928636815;hpb=f7d1569113110ea8df071d2ea64fd17aaf5b42c9;p=project%2Flibubox.git diff --git a/uloop.c b/uloop.c index 63428db..da6f690 100644 --- a/uloop.c +++ b/uloop.c @@ -264,6 +264,7 @@ out: int uloop_fd_delete(struct uloop_fd *fd) { + int ret; int i; for (i = 0; i < cur_nfds; i++) { @@ -280,9 +281,11 @@ int uloop_fd_delete(struct uloop_fd *fd) uloop_fd_set_cb(fd, 0); fd->registered = false; - fd->flags = 0; uloop_fd_stack_event(fd, -1); - return __uloop_fd_delete(fd); + ret = __uloop_fd_delete(fd); + fd->flags = 0; + + return ret; } static int64_t tv_diff(struct timeval *t1, struct timeval *t2) @@ -466,7 +469,7 @@ static void uloop_signal_wake(int signo) { uint8_t sigbyte = signo; - if (signo == ECHILD) + if (signo == SIGCHLD) do_sigchld = true; do {