Differences From Artifact [e8b15decf5]:
- File
src/OFKernelEventObserver.m
— part of check-in
[f18615e057]
at
2015-02-18 22:56:46
on branch trunk
— Add of_getsockname() and make use of it
of_getsockname() calls getsockname() after acquiring a mutex. This is
necessary as some implementations of getsockname() are not thread-safe. (user: js, size: 9103) [annotate] [blame] [check-ins using]
To Artifact [628ba88c27]:
- File src/OFKernelEventObserver.m — part of check-in [5924cc3a92] at 2015-04-14 19:34:52 on branch trunk — OFKernelEventObserver*.m: Minor cleanup (user: js, size: 9101) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
403 404 405 406 407 408 409 410 411 412 | - (bool)OF_processCache { id const *objects = [_readObjects objects]; size_t i, count = [_readObjects count]; bool foundInCache = false; for (i = 0; i < count; i++) { if ([objects[i] isKindOfClass: [OFStream class]] && [objects[i] hasDataInReadBuffer] && ![objects[i] OF_isWaitingForDelimiter]) { | > > < < | < | > | 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 | - (bool)OF_processCache { id const *objects = [_readObjects objects]; size_t i, count = [_readObjects count]; bool foundInCache = false; for (i = 0; i < count; i++) { void *pool = objc_autoreleasePoolPush(); if ([objects[i] isKindOfClass: [OFStream class]] && [objects[i] hasDataInReadBuffer] && ![objects[i] OF_isWaitingForDelimiter]) { if ([_delegate respondsToSelector: @selector(objectIsReadyForReading:)]) [_delegate objectIsReadyForReading: objects[i]]; foundInCache = true; } objc_autoreleasePoolPop(pool); } /* * As long as we have data in the cache for any stream, we don't want * to block. */ if (foundInCache) |
︙ | ︙ |