Annotate sleep calls

pull/3476/head
vjpai 10 years ago
parent 7e0289e1c2
commit 50d653476d
  1. 7
      src/core/support/time_posix.c
  2. 4
      src/core/support/time_win32.c

@ -41,6 +41,7 @@
#include <unistd.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
#include "src/core/iomgr/block_annotate.h"
static struct timespec timespec_from_gpr(gpr_timespec gts) {
struct timespec rv;
@ -126,6 +127,7 @@ void gpr_sleep_until(gpr_timespec until) {
gpr_timespec now;
gpr_timespec delta;
struct timespec delta_ts;
int ns_result;
for (;;) {
/* We could simplify by using clock_nanosleep instead, but it might be
@ -137,7 +139,10 @@ void gpr_sleep_until(gpr_timespec until) {
delta = gpr_time_sub(until, now);
delta_ts = timespec_from_gpr(delta);
if (nanosleep(&delta_ts, NULL) == 0) {
GRPC_IOMGR_START_BLOCKING_REGION;
ns_result = nanosleep(&delta_ts, NULL);
GRPC_IOMGR_END_BLOCKING_REGION;
if (ns_result == 0) {
break;
}
}

@ -41,6 +41,8 @@
#include <src/core/support/time_precise.h>
#include <sys/timeb.h>
#include "src/core/iomgr/block_annotate.h"
static LARGE_INTEGER g_start_time;
static double g_time_scale;
@ -92,7 +94,9 @@ void gpr_sleep_until(gpr_timespec until) {
delta = gpr_time_sub(until, now);
sleep_millis =
(DWORD)delta.tv_sec * GPR_MS_PER_SEC + delta.tv_nsec / GPR_NS_PER_MS;
GRPC_IOMGR_START_BLOCKING_REGION;
Sleep(sleep_millis);
GRPC_IOMGR_END_BLOCKING_REGION;
}
}

Loading…
Cancel
Save