Merge "Fix EINTR handling" am: 7d0bdd39fd
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1891496 Change-Id: I02d1281a2789b6554432a0e852e713af503bc5c8
This commit is contained in:
@@ -325,8 +325,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t readBuffer[AMIDI_PACKET_SIZE];
|
uint8_t readBuffer[AMIDI_PACKET_SIZE];
|
||||||
ssize_t readCount = read(mPort->ufd, readBuffer, sizeof(readBuffer));
|
ssize_t readCount = TEMP_FAILURE_RETRY(read(mPort->ufd, readBuffer, sizeof(readBuffer)));
|
||||||
if (readCount == EINTR || readCount < 1) {
|
if (readCount < 1) {
|
||||||
return AMEDIA_ERROR_UNKNOWN;
|
return AMEDIA_ERROR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,7 +407,8 @@ ssize_t AMIDI_API AMidiInputPort_sendWithTimestamp(const AMidiInputPort *inputPo
|
|||||||
|
|
||||||
ssize_t numTransferBytes =
|
ssize_t numTransferBytes =
|
||||||
AMIDI_makeSendBuffer(writeBuffer, data + numSent, blockSize, timestamp);
|
AMIDI_makeSendBuffer(writeBuffer, data + numSent, blockSize, timestamp);
|
||||||
ssize_t numWritten = write(((AMIDI_Port*)inputPort)->ufd, writeBuffer, numTransferBytes);
|
ssize_t numWritten = TEMP_FAILURE_RETRY(write(((AMIDI_Port*)inputPort)->ufd, writeBuffer,
|
||||||
|
numTransferBytes));
|
||||||
if (numWritten < 0) {
|
if (numWritten < 0) {
|
||||||
break; // error so bail out.
|
break; // error so bail out.
|
||||||
}
|
}
|
||||||
@@ -430,7 +431,8 @@ media_status_t AMIDI_API AMidiInputPort_sendFlush(const AMidiInputPort *inputPor
|
|||||||
|
|
||||||
uint8_t opCode = AMIDI_OPCODE_FLUSH;
|
uint8_t opCode = AMIDI_OPCODE_FLUSH;
|
||||||
ssize_t numTransferBytes = 1;
|
ssize_t numTransferBytes = 1;
|
||||||
ssize_t numWritten = write(((AMIDI_Port*)inputPort)->ufd, &opCode, numTransferBytes);
|
ssize_t numWritten = TEMP_FAILURE_RETRY(write(((AMIDI_Port*)inputPort)->ufd, &opCode,
|
||||||
|
numTransferBytes));
|
||||||
|
|
||||||
if (numWritten < numTransferBytes) {
|
if (numWritten < numTransferBytes) {
|
||||||
ALOGE("AMidiInputPort_flush Couldn't write MIDI flush. requested:%zd, written:%zd",
|
ALOGE("AMidiInputPort_flush Couldn't write MIDI flush. requested:%zd, written:%zd",
|
||||||
|
|||||||
Reference in New Issue
Block a user