Index: src/OFKernelEventObserver_epoll.m ================================================================== --- src/OFKernelEventObserver_epoll.m +++ src/OFKernelEventObserver_epoll.m @@ -94,11 +94,11 @@ events: (int)addEvents { struct epoll_event event; intptr_t events; - events = (intptr_t)[_FDToEvents valueForKey: (void*)(intptr_t)fd]; + events = (intptr_t)[_FDToEvents valueForKey: (void*)((intptr_t)fd + 1)]; memset(&event, 0, sizeof(event)); event.events = (int)events | addEvents; event.data.ptr = object; @@ -106,29 +106,29 @@ fd, &event) == -1) @throw [OFObserveFailedException exceptionWithObserver: self errNo: errno]; [_FDToEvents setValue: (void*)(events | addEvents) - forKey: (void*)(intptr_t)fd]; + forKey: (void*)((intptr_t)fd + 1)]; } - (void)OF_removeObject: (id)object fileDescriptor: (int)fd events: (int)removeEvents { intptr_t events; - events = (intptr_t)[_FDToEvents valueForKey: (void*)(intptr_t)fd]; + events = (intptr_t)[_FDToEvents valueForKey: (void*)((intptr_t)fd + 1)]; events &= ~removeEvents; if (events == 0) { if (epoll_ctl(_epfd, EPOLL_CTL_DEL, fd, NULL) == -1) @throw [OFObserveFailedException exceptionWithObserver: self errNo: errno]; - [_FDToEvents removeValueForKey: (void*)(intptr_t)fd]; + [_FDToEvents removeValueForKey: (void*)((intptr_t)fd + 1)]; } else { struct epoll_event event; memset(&event, 0, sizeof(event)); event.events = (int)events; @@ -138,11 +138,11 @@ @throw [OFObserveFailedException exceptionWithObserver: self errNo: errno]; [_FDToEvents setValue: (void*)events - forKey: (void*)(intptr_t)fd]; + forKey: (void*)((intptr_t)fd + 1)]; } } - (void)OF_addObjectForReading: (id )object {