Changeset 34986
- Timestamp:
- 08/23/09 20:54:21 (4 years ago)
- Files:
-
- 1 modified
-
lang/c/picoev/trunk/picoev_epoll.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/c/picoev/trunk/picoev_epoll.c
r34985 r34986 6 6 picoev_loop loop; 7 7 int epfd; 8 struct epoll_event events[1024]; 8 9 } picoev_loop_epoll; 9 10 … … 70 71 { 71 72 picoev_loop_epoll* loop = (picoev_loop_epoll*)_loop; 72 struct epoll_event events[100];73 73 int i, nevents, timeout_secs; 74 74 … … 77 77 timeout_secs = max_wait; 78 78 } 79 nevents = epoll_wait(loop->epfd, events, sizeof(events) / sizeof(events[0]), 79 nevents = epoll_wait(loop->epfd, loop->events, 80 sizeof(loop->events) / sizeof(loop->events[0]), 80 81 timeout_secs * 1000); 81 82 for (i = 0; i < nevents; ++i) { 82 picoev_fd* target = picoev.fds + events[i].data.fd; 83 struct epoll_event* event = loop->events + i; 84 picoev_fd* target = picoev.fds + event->data.fd; 83 85 if (loop->loop.loop_id == target->loop_id 84 && (event s[i].events & (EPOLLIN | EPOLLOUT)) != 0) {85 int revents = ((event s[i].events & EPOLLIN) != 0 ? PICOEV_READ : 0)86 | ((event s[i].events & EPOLLOUT) != 0 ? PICOEV_WRITE : 0);87 (*target->callback)(&loop->loop, event s[i].data.fd, revents,86 && (event->events & (EPOLLIN | EPOLLOUT)) != 0) { 87 int revents = ((event->events & EPOLLIN) != 0 ? PICOEV_READ : 0) 88 | ((event->events & EPOLLOUT) != 0 ? PICOEV_WRITE : 0); 89 (*target->callback)(&loop->loop, event->data.fd, revents, 88 90 target->cb_arg); 89 91 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)