@ -56,12 +56,12 @@ struct grpc_client_setup {
gpr_cv cv ;
grpc_client_setup_request * active_request ;
int refs ;
grpc_pollset_set interested_parties ;
} ;
struct grpc_client_setup_request {
/* pointer back to the setup object */
grpc_client_setup * setup ;
grpc_pollset_set interested_parties ;
gpr_timespec deadline ;
} ;
@ -71,7 +71,7 @@ gpr_timespec grpc_client_setup_request_deadline(grpc_client_setup_request *r) {
grpc_pollset_set * grpc_client_setup_get_interested_parties (
grpc_client_setup_request * r ) {
return & r - > interested_parties ;
return & r - > setup - > interested_parties ;
}
static void destroy_setup ( grpc_client_setup * s ) {
@ -79,11 +79,11 @@ static void destroy_setup(grpc_client_setup *s) {
gpr_cv_destroy ( & s - > cv ) ;
s - > done ( s - > user_data ) ;
grpc_channel_args_destroy ( s - > args ) ;
grpc_pollset_set_destroy ( & s - > interested_parties ) ;
gpr_free ( s ) ;
}
static void destroy_request ( grpc_client_setup_request * r ) {
grpc_pollset_set_destroy ( & r - > interested_parties ) ;
gpr_free ( r ) ;
}
@ -94,7 +94,6 @@ static void setup_initiate(grpc_transport_setup *sp) {
int in_alarm = 0 ;
r - > setup = s ;
grpc_pollset_set_init ( & r - > interested_parties ) ;
/* TODO(klempner): Actually set a deadline */
r - > deadline = gpr_time_add ( gpr_now ( ) , gpr_time_from_seconds ( 60 ) ) ;
@ -125,12 +124,10 @@ static void setup_add_interested_party(grpc_transport_setup *sp,
grpc_client_setup * s = ( grpc_client_setup * ) sp ;
gpr_mu_lock ( & s - > mu ) ;
if ( ! s - > active_request ) {
gpr_mu_unlock ( & s - > mu ) ;
return ;
}
grpc_pollset_set_add_pollset ( & s - > active_request - > interested_parties , pollset ) ;
gpr_log ( GPR_DEBUG , " addip: %p %p " , sp , pollset ) ;
grpc_pollset_set_add_pollset ( & s - > interested_parties , pollset ) ;
gpr_mu_unlock ( & s - > mu ) ;
}
@ -140,12 +137,10 @@ static void setup_del_interested_party(grpc_transport_setup *sp,
grpc_client_setup * s = ( grpc_client_setup * ) sp ;
gpr_mu_lock ( & s - > mu ) ;
if ( ! s - > active_request ) {
gpr_mu_unlock ( & s - > mu ) ;
return ;
}
grpc_pollset_set_del_pollset ( & s - > active_request - > interested_parties , pollset ) ;
gpr_log ( GPR_DEBUG , " delip: %p %p " , sp , pollset ) ;
grpc_pollset_set_del_pollset ( & s - > interested_parties , pollset ) ;
gpr_mu_unlock ( & s - > mu ) ;
}
@ -225,6 +220,7 @@ void grpc_client_setup_create_and_attach(
s - > in_alarm = 0 ;
s - > in_cb = 0 ;
s - > cancelled = 0 ;
grpc_pollset_set_init ( & s - > interested_parties ) ;
grpc_client_channel_set_transport_setup ( newly_minted_channel , & s - > base ) ;
}