ObjFW  Diff

Differences From Artifact [5a67a78a49]:

To Artifact [8aa249806a]:

  • File src/OFKernelEventObserver.m — part of check-in [41ca862453] at 2014-02-04 09:41:38 on branch trunk — OFKernelEventObserver_kqueue: Ignore EBADF

    Removed file descriptors were returned in the event list with EBADF if
    the file descriptor has been closed before removing them. Interpreting
    that as a read event caused problems, as the file descriptor could not
    be mapped to an object anymore, thus the entry in the event list is
    skipped now if there was a EBADF error. (user: js, size: 9215) [annotate] [blame] [check-ins using]


351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
			case QUEUE_ADD | QUEUE_WRITE:
				[_writeObjects addObject: object];

				[self OF_addFileDescriptorForWriting: fd];

				break;
			case QUEUE_REMOVE | QUEUE_READ:
				[_readObjects removeObjectIdenticalTo: object];

				[self OF_removeFileDescriptorForReading: fd];

				break;
			case QUEUE_REMOVE | QUEUE_WRITE:
				[_writeObjects removeObjectIdenticalTo: object];

				[self OF_removeFileDescriptorForWriting: fd];

				break;
			default:
				assert(0);
			}
		}








|

|



|

|







351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
			case QUEUE_ADD | QUEUE_WRITE:
				[_writeObjects addObject: object];

				[self OF_addFileDescriptorForWriting: fd];

				break;
			case QUEUE_REMOVE | QUEUE_READ:
				[self OF_removeFileDescriptorForReading: fd];

				[_readObjects removeObjectIdenticalTo: object];

				break;
			case QUEUE_REMOVE | QUEUE_WRITE:
				[self OF_removeFileDescriptorForWriting: fd];

				[_writeObjects removeObjectIdenticalTo: object];

				break;
			default:
				assert(0);
			}
		}