|
|
|
@ -49,10 +49,11 @@ |
|
|
|
|
#define NUM_OUTER_LOOPS_SHORT_TIMEOUTS 10 |
|
|
|
|
#define NUM_INNER_LOOPS_SHORT_TIMEOUTS 100 |
|
|
|
|
#define DELAY_MILLIS_SHORT_TIMEOUTS 1 |
|
|
|
|
// in a successful test run, POLL_MILLIS should never be reached beause all runs
|
|
|
|
|
// should
|
|
|
|
|
// end after the shorter delay_millis
|
|
|
|
|
// in a successful test run, POLL_MILLIS should never be reached because all
|
|
|
|
|
// runs should end after the shorter delay_millis
|
|
|
|
|
#define POLL_MILLIS_SHORT_TIMEOUTS 30000 |
|
|
|
|
// it should never take longer that this to shutdown the server
|
|
|
|
|
#define SERVER_SHUTDOWN_TIMEOUT 30000 |
|
|
|
|
|
|
|
|
|
static void* tag(int n) { return (void*)(uintptr_t)n; } |
|
|
|
|
static int detag(void* p) { return (int)(uintptr_t)p; } |
|
|
|
@ -95,7 +96,8 @@ struct server_thread_args { |
|
|
|
|
void server_thread(void* vargs) { |
|
|
|
|
struct server_thread_args* args = (struct server_thread_args*)vargs; |
|
|
|
|
grpc_event ev; |
|
|
|
|
gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_MONOTONIC); |
|
|
|
|
gpr_timespec deadline = |
|
|
|
|
grpc_timeout_milliseconds_to_deadline(SERVER_SHUTDOWN_TIMEOUT); |
|
|
|
|
ev = grpc_completion_queue_next(args->cq, deadline, nullptr); |
|
|
|
|
GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); |
|
|
|
|
GPR_ASSERT(detag(ev.tag) == 0xd1e); |
|
|
|
|