summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Keith Mok <keithmok@google.com> 2021-11-16 20:12:15 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2021-11-16 20:12:15 +0000
commit10bfeb68f7481c1eedf1ee0e6d8aae38328a1457 (patch)
tree5ad3a0fb10118ef2e3fc3fd66cb8084f4b6f41a1
parentbbd1c48986a4c1dedde7cb95dda5ec1c8a220b8d (diff)
parent80b29f8241d35148abe0f7c1a8c4b63186a2ee85 (diff)
Merge "Fix EINTR handling" am: 7d0bdd39fd am: 80b29f8241
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1891496 Change-Id: Idf9e00c0c57150cd84ce73fe8fc9e661981fbada
-rw-r--r--media/native/midi/amidi.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/media/native/midi/amidi.cpp b/media/native/midi/amidi.cpp
index 923377c8180e..f90796e415c0 100644
--- a/media/native/midi/amidi.cpp
+++ b/media/native/midi/amidi.cpp
@@ -325,8 +325,8 @@ public:
}
uint8_t readBuffer[AMIDI_PACKET_SIZE];
- ssize_t readCount = read(mPort->ufd, readBuffer, sizeof(readBuffer));
- if (readCount == EINTR || readCount < 1) {
+ ssize_t readCount = TEMP_FAILURE_RETRY(read(mPort->ufd, readBuffer, sizeof(readBuffer)));
+ if (readCount < 1) {
return AMEDIA_ERROR_UNKNOWN;
}
@@ -407,7 +407,8 @@ ssize_t AMIDI_API AMidiInputPort_sendWithTimestamp(const AMidiInputPort *inputPo
ssize_t numTransferBytes =
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) {
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;
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) {
ALOGE("AMidiInputPort_flush Couldn't write MIDI flush. requested:%zd, written:%zd",