Simplify batch operations event interpretation

pull/18218/head
Lidi Zheng 6 years ago
parent b558519d99
commit ef42aff699
  1. 13
      src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi

@ -56,18 +56,19 @@ cdef class _BatchOperationTag:
self._retained_call = call self._retained_call = call
cdef void prepare(self) except *: cdef void prepare(self) except *:
cdef Operation operation
self.c_nops = 0 if self._operations is None else len(self._operations) self.c_nops = 0 if self._operations is None else len(self._operations)
if 0 < self.c_nops: if 0 < self.c_nops:
self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops) self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
for index, operation in enumerate(self._operations): for index, operation in enumerate(self._operations):
(<Operation>operation).c() operation.c()
self.c_ops[index] = (<Operation>operation).c_op self.c_ops[index] = operation.c_op
cdef BatchOperationEvent event(self, grpc_event c_event): cdef BatchOperationEvent event(self, grpc_event c_event):
cdef Operation operation
if 0 < self.c_nops: if 0 < self.c_nops:
for index, operation in enumerate(self._operations): for operation in self._operations:
(<Operation>operation).c_op = self.c_ops[index] operation.un_c()
(<Operation>operation).un_c()
gpr_free(self.c_ops) gpr_free(self.c_ops)
return BatchOperationEvent( return BatchOperationEvent(
c_event.type, c_event.success, self._user_tag, self._operations) c_event.type, c_event.success, self._user_tag, self._operations)
@ -84,4 +85,4 @@ cdef class _ServerShutdownTag(_Tag):
cdef ServerShutdownEvent event(self, grpc_event c_event): cdef ServerShutdownEvent event(self, grpc_event c_event):
self._shutting_down_server.notify_shutdown_complete() self._shutting_down_server.notify_shutdown_complete()
return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag) return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)

Loading…
Cancel
Save