)]}'
{"oslo/messaging/_drivers/amqpdriver.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"eff0f0c20e484a2237ee7f39cd98e91f112295cc","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                                                 ctxt.msg_id,"},{"line_number":86,"context_line":"                                                 ctxt.reply_q))"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def poll(self, timeout\u003dNone):"},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            self.conn.consume(limit\u003d1, timeout\u003dtimeout)"},{"line_number":91,"context_line":"        except rpc_common.Timeout:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9fs4%3D","line":88,"updated":"2014-02-06 14:45:01.000000000","message":"IIUC, this changes the behavior of the poll function so it doesn\u0027t wait forever. I don\u0027t think it\u0027s something we want.","commit_id":"5fff39c5fbfd606218cd6a852024bace4ae8b886"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"ea34c86f10d7d2112dd20b72261e35738cb522bf","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                                                 ctxt.msg_id,"},{"line_number":86,"context_line":"                                                 ctxt.reply_q))"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def poll(self, timeout\u003dNone):"},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            self.conn.consume(limit\u003d1, timeout\u003dtimeout)"},{"line_number":91,"context_line":"        except rpc_common.Timeout:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9YMs%3D","line":88,"in_reply_to":"AAAAUH%2F9fs4%3D","updated":"2014-02-07 10:40:05.000000000","message":"Other listeners exit at the first message, even if the code \"looks like\" an unlimited loop.\n\nAnyway, I modified my patch to leave the blocking code path unchanged to reduce the risk of any regression.","commit_id":"5fff39c5fbfd606218cd6a852024bace4ae8b886"}],"oslo/messaging/_drivers/base.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"f9a7c344a6c7e44e942f4e487890b8dbbd3b657c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    @abc.abstractmethod"},{"line_number":56,"context_line":"    def poll(self, timeout\u003dNone):"},{"line_number":57,"context_line":"        \"\"\"Blocking until a message is pending and return IncomingMessage."},{"line_number":58,"context_line":"        Return None after timeout seconds if timeout is set and no message is"},{"line_number":59,"context_line":"        ending."},{"line_number":60,"context_line":"        \"\"\""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FTpA%3D","line":58,"updated":"2014-03-18 18:14:26.000000000","message":"Instead of specifying a timeout, how about the a timeout + event object, that way the caller can actually stop the polling before the timeout is reached by:\n\nFor example,\n\n  import threading\n  \n  class Timeout(object):\n      def __init__(self, timeout):\n          self._timeout \u003d timeout\n          self._event \u003d threading.Event()\n  \n      def interrupt(self):\n          self._event.set()\n  \n      def wait(self):\n          self._event.wait(self._timeout)\n\nThen pass this object (or an instance of) to the poll method.","commit_id":"f58bc7ebb55b56354441015bcbe80abd05ee233c"}]}
