• Davide Libenzi's avatar
    [PATCH] epoll bits 0.59 ... · ebdef6d5
    Davide Libenzi authored
    - Finalized the interface by :
    
            * Having an epoll_event structure instead of using the pollfd
            * Adding a 64 bit opaque data member to the epoll_event structure
            * Removing the "fd" member from the epoll_event structure
            * Removing the "revents" member to leave space for a unique 32 bit
                    "events" member
    
    - Fixes the problem where, due the new callback'd wake_up() mechanism
            loops might be generated by bringing deadlock or stack blow ups.
            In fact a user could create a cycle by adding epoll fds inside
            other epoll fds. The patch solves the problem by either :
    
            * Moving the wake_up() call done on the poll wait queue head,
                    outside the locked region
            * Implementing a new safe wake up function for the poll wait queue
                    head
    
    - Some variable renaming
    
    - Changed __NR_sys_epoll_* to __NR_epoll_* ( Hanna Linder )
    
    - Blocked the add operation of an epoll file descriptor inside itself
    
    - Comments added/fixed
    ebdef6d5
eventpoll.c 41.8 KB