Changeset 34986

Show
Ignore:
Timestamp:
08/23/09 20:54:21 (4 years ago)
Author:
kazuho
Message:

receive 1024 events by default

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/c/picoev/trunk/picoev_epoll.c

    r34985 r34986  
    66  picoev_loop loop; 
    77  int epfd; 
     8  struct epoll_event events[1024]; 
    89} picoev_loop_epoll; 
    910 
     
    7071{ 
    7172  picoev_loop_epoll* loop = (picoev_loop_epoll*)_loop; 
    72   struct epoll_event events[100]; 
    7373  int i, nevents, timeout_secs; 
    7474   
     
    7777    timeout_secs = max_wait; 
    7878  } 
    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]), 
    8081                       timeout_secs * 1000); 
    8182  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; 
    8385    if (loop->loop.loop_id == target->loop_id 
    84         && (events[i].events & (EPOLLIN | EPOLLOUT)) != 0) { 
    85       int revents = ((events[i].events & EPOLLIN) != 0 ? PICOEV_READ : 0) 
    86         | ((events[i].events & EPOLLOUT) != 0 ? PICOEV_WRITE : 0); 
    87       (*target->callback)(&loop->loop, events[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, 
    8890                          target->cb_arg); 
    8991    }