Skip to content
Snippets Groups Projects
Commit 15d7f3cd authored by Craig Tiller's avatar Craig Tiller
Browse files

Mark port as non-listening

parent 325a0591
No related branches found
No related tags found
No related merge requests found
...@@ -336,6 +336,8 @@ cdef extern from "grpc/_cython/loader.h": ...@@ -336,6 +336,8 @@ cdef extern from "grpc/_cython/loader.h":
void grpc_server_register_completion_queue(grpc_server *server, void grpc_server_register_completion_queue(grpc_server *server,
grpc_completion_queue *cq, grpc_completion_queue *cq,
void *reserved) nogil void *reserved) nogil
void grpc_server_register_non_listening_completion_queue(
grpc_server *server, grpc_completion_queue *cq, void *reserved) nogil
int grpc_server_add_insecure_http2_port( int grpc_server_add_insecure_http2_port(
grpc_server *server, const char *addr) nogil grpc_server *server, const char *addr) nogil
void grpc_server_start(grpc_server *server) nogil void grpc_server_start(grpc_server *server) nogil
......
...@@ -81,11 +81,20 @@ cdef class Server: ...@@ -81,11 +81,20 @@ cdef class Server:
self.c_server, queue.c_completion_queue, NULL) self.c_server, queue.c_completion_queue, NULL)
self.registered_completion_queues.append(queue) self.registered_completion_queues.append(queue)
def register_non_listening_completion_queue(
self, CompletionQueue queue not None):
if self.is_started:
raise ValueError("cannot register completion queues after start")
with nogil:
grpc_server_register_non_listening_completion_queue(
self.c_server, queue.c_completion_queue, NULL)
self.registered_completion_queues.append(queue)
def start(self): def start(self):
if self.is_started: if self.is_started:
raise ValueError("the server has already started") raise ValueError("the server has already started")
self.backup_shutdown_queue = CompletionQueue() self.backup_shutdown_queue = CompletionQueue()
self.register_completion_queue(self.backup_shutdown_queue) self.register_non_listening_completion_queue(self.backup_shutdown_queue)
self.is_started = True self.is_started = True
with nogil: with nogil:
grpc_server_start(self.c_server) grpc_server_start(self.c_server)
...@@ -169,4 +178,3 @@ cdef class Server: ...@@ -169,4 +178,3 @@ cdef class Server:
time.sleep(0) time.sleep(0)
with nogil: with nogil:
grpc_server_destroy(self.c_server) grpc_server_destroy(self.c_server)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment