diff options
Diffstat (limited to 'src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi')
-rw-r--r-- | src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi index e5d28a85d5..707ec742dd 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi +++ b/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi @@ -57,16 +57,19 @@ cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapp cdef class Server: - def __cinit__(self, ChannelArgs arguments): + def __cinit__(self, object arguments): grpc_init() - cdef grpc_channel_args *c_arguments = NULL self.references = [] self.registered_completion_queues = [] - if len(arguments) > 0: - c_arguments = &arguments.c_args - self.references.append(arguments) - with nogil: - self.c_server = grpc_server_create(c_arguments, NULL) + self._vtable.copy = &_copy_pointer + self._vtable.destroy = &_destroy_pointer + self._vtable.cmp = &_compare_pointer + cdef _ArgumentsProcessor arguments_processor = _ArgumentsProcessor( + arguments) + cdef grpc_channel_args *c_arguments = arguments_processor.c(&self._vtable) + self.c_server = grpc_server_create(c_arguments, NULL) + arguments_processor.un_c() + self.references.append(arguments) self.is_started = False self.is_shutting_down = False self.is_shutdown = False |