Skip to content

Commit 7f7a8d6

Browse files
committed
Use factories to create completion queues.
1 parent ffe96e6 commit 7f7a8d6

File tree

3 files changed

+30
-5
lines changed

3 files changed

+30
-5
lines changed

Sources/CgRPC/shim/channel.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ cgrpc_channel *cgrpc_channel_create(const char *address) {
2929
grpc_channel_args channel_args;
3030
channel_args.num_args = 0;
3131
c->channel = grpc_insecure_channel_create(address, &channel_args, NULL);
32-
c->completion_queue = grpc_completion_queue_create(NULL, NULL, NULL);
32+
grpc_completion_queue_attributes attr;
33+
attr.version = 1;
34+
attr.cq_completion_type = GRPC_CQ_CURRENT_VERSION;
35+
attr.cq_polling_type = GRPC_CQ_DEFAULT_POLLING;
36+
grpc_completion_queue_factory *factory = grpc_completion_queue_factory_lookup(&attr);
37+
c->completion_queue = grpc_completion_queue_create(factory, &attr, NULL);
3338
return c;
3439
}
3540

@@ -61,7 +66,12 @@ cgrpc_channel *cgrpc_channel_create_secure(const char *address,
6166

6267
grpc_channel_credentials *creds = grpc_ssl_credentials_create(pem_root_certs, NULL, NULL);
6368
c->channel = grpc_secure_channel_create(creds, address, channelArgs, NULL);
64-
c->completion_queue = grpc_completion_queue_create(NULL, NULL, NULL);
69+
grpc_completion_queue_attributes attr;
70+
attr.version = 1;
71+
attr.cq_completion_type = GRPC_CQ_CURRENT_VERSION;
72+
attr.cq_polling_type = GRPC_CQ_DEFAULT_POLLING;
73+
grpc_completion_queue_factory *factory = grpc_completion_queue_factory_lookup(&attr);
74+
c->completion_queue = grpc_completion_queue_create(factory, &attr, NULL);
6575
return c;
6676
}
6777

Sources/CgRPC/shim/handler.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@ cgrpc_handler *cgrpc_handler_create_with_server(cgrpc_server *server) {
2727
handler->server = server;
2828
grpc_metadata_array_init(&(handler->request_metadata_recv));
2929
grpc_call_details_init(&(handler->call_details));
30-
handler->completion_queue = grpc_completion_queue_create(NULL, NULL, NULL);
30+
grpc_completion_queue_attributes attr;
31+
attr.version = 1;
32+
attr.cq_completion_type = GRPC_CQ_CURRENT_VERSION;
33+
attr.cq_polling_type = GRPC_CQ_DEFAULT_POLLING;
34+
grpc_completion_queue_factory *factory = grpc_completion_queue_factory_lookup(&attr);
35+
handler->completion_queue = grpc_completion_queue_create(factory, &attr, NULL);
3136
return handler;
3237
}
3338

Sources/CgRPC/shim/server.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@
2424
cgrpc_server *cgrpc_server_create(const char *address) {
2525
cgrpc_server *server = (cgrpc_server *) malloc(sizeof (cgrpc_server));
2626
server->server = grpc_server_create(NULL, NULL);
27-
server->completion_queue = grpc_completion_queue_create(NULL, NULL, NULL);
27+
grpc_completion_queue_attributes attr;
28+
attr.version = 1;
29+
attr.cq_completion_type = GRPC_CQ_CURRENT_VERSION;
30+
attr.cq_polling_type = GRPC_CQ_DEFAULT_POLLING;
31+
grpc_completion_queue_factory *factory = grpc_completion_queue_factory_lookup(&attr);
32+
server->completion_queue = grpc_completion_queue_create(factory, &attr, NULL);
2833
grpc_server_register_completion_queue(server->server, server->completion_queue, NULL);
2934
// prepare the server to listen
3035
server->port = grpc_server_add_insecure_http2_port(server->server, address);
@@ -36,7 +41,12 @@ cgrpc_server *cgrpc_server_create_secure(const char *address,
3641
const char *cert_chain) {
3742
cgrpc_server *server = (cgrpc_server *) malloc(sizeof (cgrpc_server));
3843
server->server = grpc_server_create(NULL, NULL);
39-
server->completion_queue = grpc_completion_queue_create(NULL, NULL, NULL);
44+
grpc_completion_queue_attributes attr;
45+
attr.version = 1;
46+
attr.cq_completion_type = GRPC_CQ_CURRENT_VERSION;
47+
attr.cq_polling_type = GRPC_CQ_DEFAULT_POLLING;
48+
grpc_completion_queue_factory *factory = grpc_completion_queue_factory_lookup(&attr);
49+
server->completion_queue = grpc_completion_queue_create(factory, &attr, NULL);
4050
grpc_server_register_completion_queue(server->server, server->completion_queue, NULL);
4151

4252
grpc_ssl_pem_key_cert_pair server_credentials;

0 commit comments

Comments
 (0)