A final design criteria was that the API should be cor- rect, in that events should only be reported if they are applicable. Consider the case where a packet arrives on a socket, in turn generating an event. However, before the application is notified of this pending event, it per- forms a close() on the socket. Since the socket is no longer open, the event should not be delivered to the ap- plication, as it is no longer relevant. Furthermore, if the event happens to be identified by the file descriptor, and another descriptor is created with the same identity, the event should be removed, to preclude the possibility of false.