Check for EAGAIN in blocking_write.
This was causing `cat /dev/zero` to fail.
US-406 #done
Change-Id: I6eed8c2c3ef4ff6ba3d4d9402c3dada9731d5bd3
diff --git a/fuchsia/fuchsia-compat.c b/fuchsia/fuchsia-compat.c
index 8b30111..bbb5e75 100644
--- a/fuchsia/fuchsia-compat.c
+++ b/fuchsia/fuchsia-compat.c
@@ -119,6 +119,10 @@
}
ssize_t length_written = write(fd, buffer + offset, length - offset);
if (length_written <= 0) {
+ if (errno == EAGAIN) {
+ // Wait and read again.
+ continue;
+ }
// EOF or error.
return false;
}