|
|
|
@ -193,8 +193,10 @@ static void read_test(size_t num_bytes, size_t slice_size) { |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
|
while (state.read_bytes < state.target_read_bytes) { |
|
|
|
|
grpc_pollset_worker *worker = NULL; |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline); |
|
|
|
|
GPR_ASSERT(GRPC_LOG_IF_ERROR( |
|
|
|
|
"pollset_work", |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline))); |
|
|
|
|
gpr_mu_unlock(g_mu); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
@ -239,8 +241,10 @@ static void large_read_test(size_t slice_size) { |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
|
while (state.read_bytes < state.target_read_bytes) { |
|
|
|
|
grpc_pollset_worker *worker = NULL; |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline); |
|
|
|
|
GPR_ASSERT(GRPC_LOG_IF_ERROR( |
|
|
|
|
"pollset_work", |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline))); |
|
|
|
|
gpr_mu_unlock(g_mu); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
@ -289,7 +293,8 @@ static void write_done(grpc_exec_ctx *exec_ctx, |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
|
gpr_log(GPR_INFO, "Signalling write done"); |
|
|
|
|
state->write_done = 1; |
|
|
|
|
grpc_pollset_kick(g_pollset, NULL); |
|
|
|
|
GPR_ASSERT( |
|
|
|
|
GRPC_LOG_IF_ERROR("pollset_kick", grpc_pollset_kick(g_pollset, NULL))); |
|
|
|
|
gpr_mu_unlock(g_mu); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -308,9 +313,11 @@ void drain_socket_blocking(int fd, size_t num_bytes, size_t read_size) { |
|
|
|
|
for (;;) { |
|
|
|
|
grpc_pollset_worker *worker = NULL; |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), |
|
|
|
|
GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10)); |
|
|
|
|
GPR_ASSERT(GRPC_LOG_IF_ERROR( |
|
|
|
|
"pollset_work", |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), |
|
|
|
|
GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10)))); |
|
|
|
|
gpr_mu_unlock(g_mu); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
do { |
|
|
|
@ -372,8 +379,10 @@ static void write_test(size_t num_bytes, size_t slice_size) { |
|
|
|
|
if (state.write_done) { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline); |
|
|
|
|
GPR_ASSERT(GRPC_LOG_IF_ERROR( |
|
|
|
|
"pollset_work", |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline))); |
|
|
|
|
gpr_mu_unlock(g_mu); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
@ -389,7 +398,8 @@ static void write_test(size_t num_bytes, size_t slice_size) { |
|
|
|
|
void on_fd_released(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *errors) { |
|
|
|
|
int *done = arg; |
|
|
|
|
*done = 1; |
|
|
|
|
grpc_pollset_kick(g_pollset, NULL); |
|
|
|
|
GPR_ASSERT( |
|
|
|
|
GRPC_LOG_IF_ERROR("pollset_kick", grpc_pollset_kick(g_pollset, NULL))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Do a read_test, then release fd and try to read/write again. Verify that
|
|
|
|
@ -429,8 +439,10 @@ static void release_fd_test(size_t num_bytes, size_t slice_size) { |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
|
while (state.read_bytes < state.target_read_bytes) { |
|
|
|
|
grpc_pollset_worker *worker = NULL; |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline); |
|
|
|
|
GPR_ASSERT(GRPC_LOG_IF_ERROR( |
|
|
|
|
"pollset_work", |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline))); |
|
|
|
|
gpr_mu_unlock(g_mu); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
@ -443,8 +455,10 @@ static void release_fd_test(size_t num_bytes, size_t slice_size) { |
|
|
|
|
gpr_mu_lock(g_mu); |
|
|
|
|
while (!fd_released_done) { |
|
|
|
|
grpc_pollset_worker *worker = NULL; |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline); |
|
|
|
|
GPR_ASSERT(GRPC_LOG_IF_ERROR( |
|
|
|
|
"pollset_work", |
|
|
|
|
grpc_pollset_work(&exec_ctx, g_pollset, &worker, |
|
|
|
|
gpr_now(GPR_CLOCK_MONOTONIC), deadline))); |
|
|
|
|
} |
|
|
|
|
gpr_mu_unlock(g_mu); |
|
|
|
|
GPR_ASSERT(fd_released_done == 1); |
|
|
|
|