|
|
@ -46,7 +46,10 @@ |
|
|
|
set of features for the sake of the rest of grpc. But grpc_pollset_work |
|
|
|
set of features for the sake of the rest of grpc. But grpc_pollset_work |
|
|
|
won't actually do any polling, and return as quickly as possible. */ |
|
|
|
won't actually do any polling, and return as quickly as possible. */ |
|
|
|
|
|
|
|
|
|
|
|
void grpc_pollset_init(grpc_pollset *pollset) { gpr_mu_init(&pollset->mu); } |
|
|
|
void grpc_pollset_init(grpc_pollset *pollset) { |
|
|
|
|
|
|
|
gpr_mu_init(&pollset->mu); |
|
|
|
|
|
|
|
gpr_cv_init(&pollset->cv); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void grpc_pollset_shutdown(grpc_pollset *pollset, |
|
|
|
void grpc_pollset_shutdown(grpc_pollset *pollset, |
|
|
|
void (*shutdown_done)(void *arg), |
|
|
|
void (*shutdown_done)(void *arg), |
|
|
@ -56,6 +59,7 @@ void grpc_pollset_shutdown(grpc_pollset *pollset, |
|
|
|
|
|
|
|
|
|
|
|
void grpc_pollset_destroy(grpc_pollset *pollset) { |
|
|
|
void grpc_pollset_destroy(grpc_pollset *pollset) { |
|
|
|
gpr_mu_destroy(&pollset->mu); |
|
|
|
gpr_mu_destroy(&pollset->mu); |
|
|
|
|
|
|
|
gpr_cv_destroy(&pollset->cv); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) { |
|
|
|
int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) { |
|
|
@ -70,9 +74,12 @@ int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) { |
|
|
|
if (grpc_alarm_check(NULL, now, &deadline)) { |
|
|
|
if (grpc_alarm_check(NULL, now, &deadline)) { |
|
|
|
return 1 /* GPR_TRUE */; |
|
|
|
return 1 /* GPR_TRUE */; |
|
|
|
} |
|
|
|
} |
|
|
|
return 0 /* GPR_FALSE */; |
|
|
|
gpr_cv_wait(&pollset->cv, &pollset->mu, deadline); |
|
|
|
|
|
|
|
return 1 /* GPR_TRUE */; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void grpc_pollset_kick(grpc_pollset *p) {} |
|
|
|
void grpc_pollset_kick(grpc_pollset *p) { |
|
|
|
|
|
|
|
gpr_cv_signal(&p->cv); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endif /* GPR_WINSOCK_SOCKET */ |
|
|
|
#endif /* GPR_WINSOCK_SOCKET */ |
|
|
|