Differences From Artifact [57b253b8a0]:
- File
src/OFKernelEventObserver.m
— part of check-in
[f9ceddcb7d]
at
2015-04-26 10:42:58
on branch trunk
— OFKernelEventObserver: Keep FD -> object mapping
Removing the FD from the FD -> object mapping results in
OF_processReadBuffers passing nil to objectIsReadyForReading: if there's
still something in the read buffer.Additionally, this also broke when observing the same object for reading
and writing and then removing it for either reading or writing. (user: js, size: 9210) [annotate] [blame] [check-ins using]
To Artifact [566a494d67]:
- File src/OFKernelEventObserver.m — part of check-in [ed4a6f396b] at 2015-05-04 14:30:16 on branch trunk — Add OFKernelEventObserver_epoll (user: js, size: 9243) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # import "OFMutex.h" #endif #import "OFDate.h" #ifdef HAVE_KQUEUE # import "OFKernelEventObserver_kqueue.h" #endif #if defined(HAVE_POLL_H) || defined(__wii__) # import "OFKernelEventObserver_poll.h" #endif #if defined(HAVE_SYS_SELECT_H) || defined(_WIN32) # import "OFKernelEventObserver_select.h" #endif | > > > | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # import "OFMutex.h" #endif #import "OFDate.h" #ifdef HAVE_KQUEUE # import "OFKernelEventObserver_kqueue.h" #endif #ifdef HAVE_EPOLL # import "OFKernelEventObserver_epoll.h" #endif #if defined(HAVE_POLL_H) || defined(__wii__) # import "OFKernelEventObserver_poll.h" #endif #if defined(HAVE_SYS_SELECT_H) || defined(_WIN32) # import "OFKernelEventObserver_select.h" #endif |
︙ | ︙ | |||
72 73 74 75 76 77 78 | } + (instancetype)observer { return [[[self alloc] init] autorelease]; } | < > | | < < < < < < < < < < > > > < | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | } + (instancetype)observer { return [[[self alloc] init] autorelease]; } + alloc { if (self == [OFKernelEventObserver class]) #if defined(HAVE_KQUEUE) return [OFKernelEventObserver_kqueue alloc]; #elif defined(HAVE_EPOLL) return [OFKernelEventObserver_epoll alloc]; #elif defined(HAVE_POLL_H) || defined(__wii__) return [OFKernelEventObserver_poll alloc]; #elif defined(HAVE_SYS_SELECT_H) || defined(_WIN32) return [OFKernelEventObserver_select alloc]; #else # error No kqueue / epoll / poll / select found! #endif return [super alloc]; } - init { self = [super init]; @try { #if !defined(OF_HAVE_PIPE) && !defined(__wii__) |
︙ | ︙ |