Skip to content
Snippets Groups Projects
Commit d5d9d9e6 authored by Ken Payson's avatar Ken Payson
Browse files

Store cython-level call in grpc.Call

This allows inspecting c-level properties of the call after completion.
parent e60d5ff8
No related branches found
No related tags found
No related merge requests found
...@@ -444,10 +444,10 @@ def _start_unary_request(request, timeout, request_serializer): ...@@ -444,10 +444,10 @@ def _start_unary_request(request, timeout, request_serializer):
return deadline, deadline_timespec, serialized_request, None return deadline, deadline_timespec, serialized_request, None
def _end_unary_response_blocking(state, with_call, deadline): def _end_unary_response_blocking(state, call, with_call, deadline):
if state.code is grpc.StatusCode.OK: if state.code is grpc.StatusCode.OK:
if with_call: if with_call:
rendezvous = _Rendezvous(state, None, None, deadline) rendezvous = _Rendezvous(state, call, None, deadline)
return state.response, rendezvous return state.response, rendezvous
else: else:
return state.response return state.response
...@@ -499,17 +499,17 @@ class _UnaryUnaryMultiCallable(grpc.UnaryUnaryMultiCallable): ...@@ -499,17 +499,17 @@ class _UnaryUnaryMultiCallable(grpc.UnaryUnaryMultiCallable):
_check_call_error(call_error, metadata) _check_call_error(call_error, metadata)
_handle_event(completion_queue.poll(), state, _handle_event(completion_queue.poll(), state,
self._response_deserializer) self._response_deserializer)
return state, deadline return state, call, deadline
def __call__(self, request, timeout=None, metadata=None, credentials=None): def __call__(self, request, timeout=None, metadata=None, credentials=None):
state, deadline, = self._blocking(request, timeout, metadata, state, call, deadline = self._blocking(request, timeout, metadata,
credentials) credentials)
return _end_unary_response_blocking(state, False, deadline) return _end_unary_response_blocking(state, call, False, deadline)
def with_call(self, request, timeout=None, metadata=None, credentials=None): def with_call(self, request, timeout=None, metadata=None, credentials=None):
state, deadline, = self._blocking(request, timeout, metadata, state, call, deadline = self._blocking(request, timeout, metadata,
credentials) credentials)
return _end_unary_response_blocking(state, True, deadline) return _end_unary_response_blocking(state, call, True, deadline)
def future(self, request, timeout=None, metadata=None, credentials=None): def future(self, request, timeout=None, metadata=None, credentials=None):
state, operations, deadline, deadline_timespec, rendezvous = self._prepare( state, operations, deadline, deadline_timespec, rendezvous = self._prepare(
...@@ -619,25 +619,25 @@ class _StreamUnaryMultiCallable(grpc.StreamUnaryMultiCallable): ...@@ -619,25 +619,25 @@ class _StreamUnaryMultiCallable(grpc.StreamUnaryMultiCallable):
state.condition.notify_all() state.condition.notify_all()
if not state.due: if not state.due:
break break
return state, deadline return state, call, deadline
def __call__(self, def __call__(self,
request_iterator, request_iterator,
timeout=None, timeout=None,
metadata=None, metadata=None,
credentials=None): credentials=None):
state, deadline, = self._blocking(request_iterator, timeout, metadata, state, call, deadline = self._blocking(request_iterator, timeout,
credentials) metadata, credentials)
return _end_unary_response_blocking(state, False, deadline) return _end_unary_response_blocking(state, call, False, deadline)
def with_call(self, def with_call(self,
request_iterator, request_iterator,
timeout=None, timeout=None,
metadata=None, metadata=None,
credentials=None): credentials=None):
state, deadline, = self._blocking(request_iterator, timeout, metadata, state, call, deadline = self._blocking(request_iterator, timeout,
credentials) metadata, credentials)
return _end_unary_response_blocking(state, True, deadline) return _end_unary_response_blocking(state, call, True, deadline)
def future(self, def future(self,
request_iterator, request_iterator,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment