Differences From Artifact [5f45cad885]:
- File
src/OFRunLoop.m
— part of check-in
[d1d36ae522]
at
2021-11-06 15:57:29
on branch trunk
— OFStream: New write API
The old write API made it too easy to lose bytes when a stream is set to
non-blocking mode. The new API always throws when not all bytes were
written, which forces handling the number of bytes being written being
smaller than the number of bytes requested to be written. (user: js, size: 36952) [annotate] [blame] [check-ins using]
To Artifact [652ae46855]:
- File src/OFRunLoop.m — part of check-in [d9586ed175] at 2022-01-28 19:34:41 on branch trunk — Don't assume EWOULDBLOCK and EAGAIN are the same (user: js, size: 36994) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
571 572 573 574 575 576 577 | @try { const char *dataItems = _data.items; length = dataLength - _writtenLength; [object writeBuffer: dataItems + _writtenLength length: length]; } @catch (OFWriteFailedException *e) { length = e.bytesWritten; | | | 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 | @try { const char *dataItems = _data.items; length = dataLength - _writtenLength; [object writeBuffer: dataItems + _writtenLength length: length]; } @catch (OFWriteFailedException *e) { length = e.bytesWritten; if (e.errNo != EWOULDBLOCK && e.errNo != EAGAIN) exception = e; } @catch (id e) { length = 0; exception = e; } _writtenLength += length; |
︙ | ︙ | |||
648 649 650 651 652 653 654 | @try { const char *cString = [_string cStringWithEncoding: _encoding]; length = cStringLength - _writtenLength; [object writeBuffer: cString + _writtenLength length: length]; } @catch (OFWriteFailedException *e) { length = e.bytesWritten; | | | 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 | @try { const char *cString = [_string cStringWithEncoding: _encoding]; length = cStringLength - _writtenLength; [object writeBuffer: cString + _writtenLength length: length]; } @catch (OFWriteFailedException *e) { length = e.bytesWritten; if (e.errNo != EWOULDBLOCK && e.errNo != EAGAIN) exception = e; } @catch (id e) { length = 0; exception = e; } _writtenLength += length; |
︙ | ︙ |