aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-05-24 21:37:39 +0000
committerGravatar Craig Tiller <ctiller@google.com>2017-05-24 21:37:39 +0000
commitcfa8313fbb85f7fc07c37ef1b7fda0106e040e12 (patch)
treea7202160e430706c755952bad4ba8699820659f7 /test
parentbb29c724dde15cbcc1d0496918e4bee43886045f (diff)
Fix race
Diffstat (limited to 'test')
-rw-r--r--test/core/iomgr/endpoint_tests.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/test/core/iomgr/endpoint_tests.c b/test/core/iomgr/endpoint_tests.c
index 85ba85373b..400a79fd33 100644
--- a/test/core/iomgr/endpoint_tests.c
+++ b/test/core/iomgr/endpoint_tests.c
@@ -274,19 +274,19 @@ static void inc_on_failure(grpc_exec_ctx *exec_ctx, void *arg,
static void wait_for_fail_count(grpc_exec_ctx *exec_ctx, int *fail_count,
int want_fail_count) {
grpc_exec_ctx_flush(exec_ctx);
- for (int i = 0; i < 5 && *fail_count < want_fail_count; i++) {
+ gpr_mu_lock(g_mu);
+ gpr_timespec deadline = grpc_timeout_seconds_to_deadline(10);
+ while (gpr_time_cmp(gpr_now(deadline.clock_type), deadline) < 0 && *fail_count < want_fail_count) {
grpc_pollset_worker *worker = NULL;
- gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
- gpr_timespec deadline =
- gpr_time_add(now, gpr_time_from_seconds(1, GPR_TIMESPAN));
- gpr_mu_lock(g_mu);
GPR_ASSERT(GRPC_LOG_IF_ERROR(
"pollset_work",
- grpc_pollset_work(exec_ctx, g_pollset, &worker, now, deadline)));
+ grpc_pollset_work(exec_ctx, g_pollset, &worker, gpr_now(deadline.clock_type), deadline)));
gpr_mu_unlock(g_mu);
grpc_exec_ctx_flush(exec_ctx);
+ gpr_mu_lock(g_mu);
}
GPR_ASSERT(*fail_count == want_fail_count);
+ gpr_mu_unlock(g_mu);
}
static void multiple_shutdown_test(grpc_endpoint_test_config config) {