)]}'
{"shade/_utils.py":[{"author":{"_account_id":24647,"name":"Roberto Polli","email":"robipolli@gmail.com","username":"ioggstream"},"change_message_id":"0a29795e98cb1eea69ca5d6e15a257ee532b502e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        if wait is None:"},{"line_number":58,"context_line":"            wait \u003d 2"},{"line_number":59,"context_line":"        elif wait \u003d\u003d 0:"},{"line_number":60,"context_line":"            # wait should be \u003c timeout, unless timeout is None"},{"line_number":61,"context_line":"            wait \u003d 0.1 if timeout is None else min(0.1, timeout)"},{"line_number":62,"context_line":"        wait \u003d float(wait)"},{"line_number":63,"context_line":"    except ValueError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_a5c1e930","line":60,"updated":"2017-01-20 08:43:26.000000000","message":"As of now, _iterate_timeout(0.1, wait\u003d5) lasts more than the timeout","commit_id":"362af901d00b8e46ef734a9e33e29f831fbc4a24"},{"author":{"_account_id":24647,"name":"Roberto Polli","email":"robipolli@gmail.com","username":"ioggstream"},"change_message_id":"0a29795e98cb1eea69ca5d6e15a257ee532b502e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            wait \u003d 2"},{"line_number":59,"context_line":"        elif wait \u003d\u003d 0:"},{"line_number":60,"context_line":"            # wait should be \u003c timeout, unless timeout is None"},{"line_number":61,"context_line":"            wait \u003d 0.1 if timeout is None else min(0.1, timeout)"},{"line_number":62,"context_line":"        wait \u003d float(wait)"},{"line_number":63,"context_line":"    except ValueError:"},{"line_number":64,"context_line":"        raise exc.OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_45a3e59e","line":61,"updated":"2017-01-20 08:43:26.000000000","message":"0.1 (or another, lower, value) could balance test and real world usage.","commit_id":"362af901d00b8e46ef734a9e33e29f831fbc4a24"},{"author":{"_account_id":24647,"name":"Roberto Polli","email":"robipolli@gmail.com","username":"ioggstream"},"change_message_id":"0a29795e98cb1eea69ca5d6e15a257ee532b502e","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    start \u003d time.time()"},{"line_number":69,"context_line":"    count \u003d 0"},{"line_number":70,"context_line":"    while (timeout is None) or (time.time() \u003c start + timeout):"},{"line_number":71,"context_line":"        count +\u003d 1"},{"line_number":72,"context_line":"        yield count"},{"line_number":73,"context_line":"        log.debug(\u0027Waiting %s seconds\u0027, wait)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_85f14dd0","line":70,"updated":"2017-01-20 08:43:26.000000000","message":"_iterate_timeout(None, wait\u003d0) is a while True. \n\nThere\u0027s a log.debug() after line 71: this could lead to:\n\nwhile True:\n   log.debug(...)\n\nwhich oggs both cpu and I/O","commit_id":"362af901d00b8e46ef734a9e33e29f831fbc4a24"}]}
