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 430 431 432 433 434 | - (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) return true; return false; } @end |