in qpid/peer.py [0:0]
def invoke_reliable(self, frame, content = None):
if not self.synchronous:
future = Future()
self.request(frame, future.put_response, content)
if not frame.method.responses: return None
else: return future
self.request(frame, self.queue_response, content)
if not frame.method.responses:
if self.use_execution_layer and frame.method_type.is_l4_command():
self.execution_sync()
self.completion.wait()
if self._closed:
raise Closed(self.reason)
return None
try:
resp = self.responses.get()
if resp.method_type.content:
return Message(self, resp, read_content(self.responses))
else:
return Message(self, resp)
except QueueClosed as e:
if self._closed:
raise Closed(self.reason)
else:
raise e