aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Feng Li <fengli@google.com>2018-03-23 09:23:51 -0700
committerGravatar Feng Li <fengli@google.com>2018-03-23 09:23:51 -0700
commit7b2f5775d851e5feb49db9bf2e5412f78aebb5b9 (patch)
tree795bd7cf4d271fc90e3d02047672f573135abdda
parent6fbc1fbce43f8a7b688f07681b8cde9c5e3eb06c (diff)
Release the GIL when calling grpc_call_start_batch.
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi
index 0892215b6d..2e02111ddd 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi
@@ -30,9 +30,12 @@ cdef class Call:
tag, operations, self if retain_self else None)
batch_operation_tag.prepare()
cpython.Py_INCREF(batch_operation_tag)
- return grpc_call_start_batch(
+ cdef grpc_call_error error
+ with nogil:
+ error = grpc_call_start_batch(
self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
<cpython.PyObject *>batch_operation_tag, NULL)
+ return error
def start_client_batch(self, operations, tag):
# We don't reference this call in the operations tag because