diff options
author | Craig Tiller <ctiller@google.com> | 2015-09-15 07:41:28 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2015-09-15 07:41:28 -0700 |
commit | 06a43f5d7e7ec90dfe133c5dfa1bb2c3acb85059 (patch) | |
tree | 3280f1a990f3bf9f8d86fe899fc70b66641482fc /src/core/surface/secure_channel_create.c | |
parent | 1701b093339fc124bd9c7f08eb7d8511799281ec (diff) |
Progress towards workqueue transition
Diffstat (limited to 'src/core/surface/secure_channel_create.c')
-rw-r--r-- | src/core/surface/secure_channel_create.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/surface/secure_channel_create.c b/src/core/surface/secure_channel_create.c index 06ffa8dd6e..d141260421 100644 --- a/src/core/surface/secure_channel_create.c +++ b/src/core/surface/secure_channel_create.c @@ -57,6 +57,7 @@ typedef struct { gpr_refcount refs; grpc_channel_security_connector *security_connector; + grpc_workqueue *workqueue; grpc_iomgr_closure *notify; grpc_connect_in_args args; @@ -71,6 +72,7 @@ static void connector_ref(grpc_connector *con) { static void connector_unref(grpc_connector *con) { connector *c = (connector *)con; if (gpr_unref(&c->refs)) { + grpc_workqueue_unref(c->workqueue); gpr_free(c); } } @@ -122,8 +124,8 @@ static void connector_connect(grpc_connector *con, c->notify = notify; c->args = *args; c->result = result; - grpc_tcp_client_connect(connected, c, args->interested_parties, args->addr, - args->addr_len, args->deadline); + grpc_tcp_client_connect(connected, c, args->interested_parties, c->workqueue, + args->addr, args->addr_len, args->deadline); } static const grpc_connector_vtable connector_vtable = { @@ -165,6 +167,8 @@ static grpc_subchannel *subchannel_factory_create_subchannel( memset(c, 0, sizeof(*c)); c->base.vtable = &connector_vtable; c->security_connector = f->security_connector; + c->workqueue = grpc_channel_get_workqueue(f->master); + grpc_workqueue_ref(c->workqueue); gpr_ref_init(&c->refs, 1); args->mdctx = f->mdctx; args->args = final_args; @@ -240,7 +244,8 @@ grpc_channel *grpc_secure_channel_create(grpc_credentials *creds, f->merge_args = grpc_channel_args_copy(args_copy); f->master = channel; GRPC_CHANNEL_INTERNAL_REF(channel, "subchannel_factory"); - resolver = grpc_resolver_create(target, &f->base); + resolver = grpc_resolver_create(target, &f->base, + grpc_channel_get_workqueue(channel)); if (!resolver) { return NULL; } |