async def _stream_response_in_pool(rpc_event, state, behavior, argument_thunk, request_deserializer, response_serializer): argument = argument_thunk() if argument is not None: # Notice this calls the normal `_call_behavior` not the awaitable version. response_iterator, proceed = _server._call_behavior( rpc_event, state, behavior, argument, request_deserializer) if proceed: while True: response, proceed = await _take_response_from_response_iterator( rpc_event, state, response_iterator) if proceed: if response is None: _server._status(rpc_event, state, None) break else: serialized_response = _server._serialize_response( rpc_event, state, response, response_serializer) if serialized_response is not None: proceed = _server._send_response(rpc_event, state, serialized_response) if not proceed: break else: break else: break
async def _unary_response_in_pool(rpc_event, state, behavior, argument_thunk, request_deserializer, response_serializer): argument = argument_thunk() if argument is not None: response, proceed = await _call_behavior(rpc_event, state, behavior, argument, request_deserializer) if proceed: serialized_response = _server._serialize_response( rpc_event, state, response, response_serializer) if serialized_response is not None: _server._status(rpc_event, state, serialized_response)