|
|
|
@ -82,8 +82,9 @@ static void test(void) { |
|
|
|
|
|
|
|
|
|
/* Test timeout on event wait for uncancelled gpr_cancellable */ |
|
|
|
|
interval = gpr_now(GPR_CLOCK_REALTIME); |
|
|
|
|
gpr_event_cancellable_wait( |
|
|
|
|
&t.ev, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_micros(1000000)), &t.cancel); |
|
|
|
|
gpr_event_cancellable_wait(&t.ev, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), |
|
|
|
|
gpr_time_from_micros(1000000)), |
|
|
|
|
&t.cancel); |
|
|
|
|
interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); |
|
|
|
|
GPR_ASSERT(gpr_time_cmp(interval, gpr_time_from_micros(500000)) >= 0); |
|
|
|
|
GPR_ASSERT(gpr_time_cmp(gpr_time_from_micros(2000000), interval) >= 0); |
|
|
|
@ -92,9 +93,9 @@ static void test(void) { |
|
|
|
|
gpr_mu_lock(&t.mu); |
|
|
|
|
interval = gpr_now(GPR_CLOCK_REALTIME); |
|
|
|
|
while (!gpr_cv_cancellable_wait( |
|
|
|
|
&t.cv, &t.mu, |
|
|
|
|
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_micros(1000000)), |
|
|
|
|
&t.cancel)) { |
|
|
|
|
&t.cv, &t.mu, |
|
|
|
|
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_micros(1000000)), |
|
|
|
|
&t.cancel)) { |
|
|
|
|
} |
|
|
|
|
interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); |
|
|
|
|
GPR_ASSERT(gpr_time_cmp(interval, gpr_time_from_micros(500000)) >= 0); |
|
|
|
@ -112,8 +113,8 @@ static void test(void) { |
|
|
|
|
|
|
|
|
|
/* Wait a second, and check that no threads have finished waiting. */ |
|
|
|
|
gpr_mu_lock(&t.mu); |
|
|
|
|
gpr_cv_wait(&t.cv, &t.mu, |
|
|
|
|
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_micros(1000000))); |
|
|
|
|
gpr_cv_wait(&t.cv, &t.mu, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), |
|
|
|
|
gpr_time_from_micros(1000000))); |
|
|
|
|
GPR_ASSERT(t.n == n); |
|
|
|
|
gpr_mu_unlock(&t.mu); |
|
|
|
|
|
|
|
|
@ -131,9 +132,9 @@ static void test(void) { |
|
|
|
|
gpr_mu_lock(&t.mu); |
|
|
|
|
interval = gpr_now(GPR_CLOCK_REALTIME); |
|
|
|
|
while (!gpr_cv_cancellable_wait( |
|
|
|
|
&t.cv, &t.mu, |
|
|
|
|
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_micros(1000000)), |
|
|
|
|
&t.cancel)) { |
|
|
|
|
&t.cv, &t.mu, |
|
|
|
|
gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_micros(1000000)), |
|
|
|
|
&t.cancel)) { |
|
|
|
|
} |
|
|
|
|
interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); |
|
|
|
|
GPR_ASSERT(gpr_time_cmp(gpr_time_from_micros(100000), interval) >= 0); |
|
|
|
@ -141,8 +142,9 @@ static void test(void) { |
|
|
|
|
|
|
|
|
|
/* Test timeout on event wait for cancelled gpr_cancellable */ |
|
|
|
|
interval = gpr_now(GPR_CLOCK_REALTIME); |
|
|
|
|
gpr_event_cancellable_wait( |
|
|
|
|
&t.ev, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_micros(1000000)), &t.cancel); |
|
|
|
|
gpr_event_cancellable_wait(&t.ev, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), |
|
|
|
|
gpr_time_from_micros(1000000)), |
|
|
|
|
&t.cancel); |
|
|
|
|
interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); |
|
|
|
|
GPR_ASSERT(gpr_time_cmp(gpr_time_from_micros(100000), interval) >= 0); |
|
|
|
|
|
|
|
|
|