Loading docs/examples/ephiperfifo.c +26 −19 Original line number Diff line number Diff line Loading @@ -160,11 +160,13 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g) its.it_value.tv_sec = timeout_ms / 1000; its.it_value.tv_nsec = (timeout_ms % 1000) * 1000; timerfd_settime(g->tfd, /*flags=*/0, &its, NULL); } else if (timeout_ms == 0) { } else if(timeout_ms == 0) { rc = curl_multi_socket_action(g->multi, CURL_SOCKET_TIMEOUT, 0, &g->still_running); mcode_or_die("multi_timer_cb: curl_multi_socket_action", rc); } else { } else { memset(&its, 0, sizeof(struct itimerspec)); timerfd_settime(g->tfd, /*flags=*/0, &its, NULL); } Loading Loading @@ -268,8 +270,8 @@ static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act, GlobalInfo *g) { struct epoll_event ev; int kind = (act & CURL_POLL_IN ? EPOLLIN : 0) | (act & CURL_POLL_OUT ? EPOLLOUT : 0); int kind = (act & CURL_POLL_IN ? EPOLLIN : 0) | (act & CURL_POLL_OUT ? EPOLLOUT : 0); if(f->sockfd) { epoll_ctl(g->epfd, EPOLL_CTL_DEL, f->sockfd, NULL); Loading Loading @@ -398,7 +400,8 @@ static void fifo_cb(GlobalInfo* g, int revents) s[n]='\0'; if(n && s[0]) { new_conn(s, g); /* if we read a URL, go get it! */ } else } else break; } while(rv != EOF); } Loading Loading @@ -451,7 +454,8 @@ static void clean_fifo(GlobalInfo *g) int g_should_exit_ = 0; void SignalHandler(int signo) { void SignalHandler(int signo) { if(signo == SIGINT) { g_should_exit_ = 1; } Loading Loading @@ -515,7 +519,8 @@ int main(int argc _Unused, char **argv _Unused) if(errno == EINTR) { fprintf(MSG_OUT, "note: wait interrupted\n"); continue; } else { } else { perror("epoll_wait"); exit(1); } Loading @@ -524,9 +529,11 @@ int main(int argc _Unused, char **argv _Unused) for(idx = 0; idx < err; ++idx) { if(events[idx].data.fd == g.fifofd) { fifo_cb(&g, events[idx].events); } else if (events[idx].data.fd == g.tfd) { } else if(events[idx].data.fd == g.tfd) { timer_cb(&g, events[idx].events); } else { } else { event_cb(&g, events[idx].data.fd, events[idx].events); } } Loading Loading
docs/examples/ephiperfifo.c +26 −19 Original line number Diff line number Diff line Loading @@ -160,11 +160,13 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g) its.it_value.tv_sec = timeout_ms / 1000; its.it_value.tv_nsec = (timeout_ms % 1000) * 1000; timerfd_settime(g->tfd, /*flags=*/0, &its, NULL); } else if (timeout_ms == 0) { } else if(timeout_ms == 0) { rc = curl_multi_socket_action(g->multi, CURL_SOCKET_TIMEOUT, 0, &g->still_running); mcode_or_die("multi_timer_cb: curl_multi_socket_action", rc); } else { } else { memset(&its, 0, sizeof(struct itimerspec)); timerfd_settime(g->tfd, /*flags=*/0, &its, NULL); } Loading Loading @@ -268,8 +270,8 @@ static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act, GlobalInfo *g) { struct epoll_event ev; int kind = (act & CURL_POLL_IN ? EPOLLIN : 0) | (act & CURL_POLL_OUT ? EPOLLOUT : 0); int kind = (act & CURL_POLL_IN ? EPOLLIN : 0) | (act & CURL_POLL_OUT ? EPOLLOUT : 0); if(f->sockfd) { epoll_ctl(g->epfd, EPOLL_CTL_DEL, f->sockfd, NULL); Loading Loading @@ -398,7 +400,8 @@ static void fifo_cb(GlobalInfo* g, int revents) s[n]='\0'; if(n && s[0]) { new_conn(s, g); /* if we read a URL, go get it! */ } else } else break; } while(rv != EOF); } Loading Loading @@ -451,7 +454,8 @@ static void clean_fifo(GlobalInfo *g) int g_should_exit_ = 0; void SignalHandler(int signo) { void SignalHandler(int signo) { if(signo == SIGINT) { g_should_exit_ = 1; } Loading Loading @@ -515,7 +519,8 @@ int main(int argc _Unused, char **argv _Unused) if(errno == EINTR) { fprintf(MSG_OUT, "note: wait interrupted\n"); continue; } else { } else { perror("epoll_wait"); exit(1); } Loading @@ -524,9 +529,11 @@ int main(int argc _Unused, char **argv _Unused) for(idx = 0; idx < err; ++idx) { if(events[idx].data.fd == g.fifofd) { fifo_cb(&g, events[idx].events); } else if (events[idx].data.fd == g.tfd) { } else if(events[idx].data.fd == g.tfd) { timer_cb(&g, events[idx].events); } else { } else { event_cb(&g, events[idx].data.fd, events[idx].events); } } Loading