Fix SleepMs function
nanosleep returns 0 when it successfully sleep for requested interval,
if we got errno EINTR, it means the return value will be -1.
BUG=NONE
TEST=NONE
Change-Id: I31879ecf92609643c3990d2ba93a2e08b3f20403
Reviewed-on: https://chromium-review.googlesource.com/830037
Commit-Ready: Zhongze Hu <frankhu@google.com>
Tested-by: Zhongze Hu <frankhu@google.com>
Reviewed-by: Ege Mihmanli <egemih@google.com>
Reviewed-by: Emil Lundmark <lndmrk@chromium.org>
diff --git a/src/util.cc b/src/util.cc
index 7aec483..cef4886 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -98,7 +98,7 @@
struct timespec req = {.tv_sec = (ms / 1000),
.tv_nsec = ((ms % 1000) * 1000000)};
struct timespec rem;
- while ((nanosleep(&req, &rem) == 0) && (errno == EINTR)) {
+ while ((nanosleep(&req, &rem) != 0) && (errno == EINTR)) {
req = rem;
}
}