Add TEMP_FAILURE_RETRY for the Mac build.
Change-Id: I4934e76643783041773033af61b0ae82fd188c01
diff --git a/src/macros.h b/src/macros.h
index 88c2416..7652f71 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -125,4 +125,14 @@
#define LIKELY(x) __builtin_expect((x),true)
#define UNLIKELY(x) __builtin_expect((x),false)
+// bionic and glibc both have TEMP_FAILURE_RETRY, but Mac OS' libc doesn't.
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(exp) ({ \
+ typeof (exp) _rc; \
+ do { \
+ _rc = (exp); \
+ } while (_rc == -1 && errno == EINTR); \
+ _rc; })
+#endif
+
#endif // ART_SRC_MACROS_H_