)]}'
{"swift/common/middleware/slo.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"21b3d1ece3d5af8f81a73d3ec2b72588c77c115d","unresolved":false,"context_lines":[{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"        heartbeat \u003d config_true_value(req.params.get(\u0027heartbeat\u0027))"},{"line_number":1052,"context_line":"        separator \u003d \u0027\u0027"},{"line_number":1053,"context_line":"        if heartbeat:"},{"line_number":1054,"context_line":"            req.environ[\u0027eventlet.minimum_write_chunk_size\u0027] \u003d 0"},{"line_number":1055,"context_line":"            start_response(\u0027202 Accepted\u0027, [  # NB: not 201 !"},{"line_number":1056,"context_line":"                (\u0027Content-Type\u0027, out_content_type),"},{"line_number":1057,"context_line":"            ])"},{"line_number":1058,"context_line":"            separator \u003d \u0027\\r\\n\\r\\n\u0027"},{"line_number":1059,"context_line":"        data_for_storage \u003d [None] * len(parsed_data)"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"        def resp_iter():"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_666195a9","line":1058,"range":{"start_line":1053,"start_character":8,"end_line":1058,"end_character":34},"updated":"2017-11-02 19:07:49.000000000","message":"We could even pull this down into resp_iter, if only to bring down the number of if statements.","commit_id":"73d2c922c5e48c514cc915dfb6ce812859080d58"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6285f5e2f83db511c5c40283f226e689082d5d6c","unresolved":false,"context_lines":[{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"        heartbeat \u003d config_true_value(req.params.get(\u0027heartbeat\u0027))"},{"line_number":1052,"context_line":"        separator \u003d \u0027\u0027"},{"line_number":1053,"context_line":"        if heartbeat:"},{"line_number":1054,"context_line":"            req.environ[\u0027eventlet.minimum_write_chunk_size\u0027] \u003d 0"},{"line_number":1055,"context_line":"            start_response(\u0027202 Accepted\u0027, [  # NB: not 201 !"},{"line_number":1056,"context_line":"                (\u0027Content-Type\u0027, out_content_type),"},{"line_number":1057,"context_line":"            ])"},{"line_number":1058,"context_line":"            separator \u003d \u0027\\r\\n\\r\\n\u0027"},{"line_number":1059,"context_line":"        data_for_storage \u003d [None] * len(parsed_data)"},{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"        def resp_iter():"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_0102cb6f","line":1058,"range":{"start_line":1053,"start_character":8,"end_line":1058,"end_character":34},"in_reply_to":"3f4b6375_666195a9","updated":"2017-11-02 19:44:58.000000000","message":"+1","commit_id":"73d2c922c5e48c514cc915dfb6ce812859080d58"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"21b3d1ece3d5af8f81a73d3ec2b72588c77c115d","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"            # been yielded so make sure first heartbeat is sent immediately"},{"line_number":1065,"context_line":"            if heartbeat:"},{"line_number":1066,"context_line":"                yield \u0027 \u0027"},{"line_number":1067,"context_line":"            last_yield_time \u003d time.time()"},{"line_number":1068,"context_line":"            with StreamingPile(self.concurrency) as pile:"},{"line_number":1069,"context_line":"                for obj_name, resp in pile.asyncstarmap(do_head, ("},{"line_number":1070,"context_line":"                        (path, ) for path in path2indices)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_c6f609d8","line":1067,"updated":"2017-11-02 19:07:49.000000000","message":"Another option would be to initialize\n\n last_yield_time \u003d 0\n\nwhich would have us yield after the *first* HEAD reply. I think I had some iteration of the original patch that did that, or something like it...","commit_id":"73d2c922c5e48c514cc915dfb6ce812859080d58"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6285f5e2f83db511c5c40283f226e689082d5d6c","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"            # been yielded so make sure first heartbeat is sent immediately"},{"line_number":1065,"context_line":"            if heartbeat:"},{"line_number":1066,"context_line":"                yield \u0027 \u0027"},{"line_number":1067,"context_line":"            last_yield_time \u003d time.time()"},{"line_number":1068,"context_line":"            with StreamingPile(self.concurrency) as pile:"},{"line_number":1069,"context_line":"                for obj_name, resp in pile.asyncstarmap(do_head, ("},{"line_number":1070,"context_line":"                        (path, ) for path in path2indices)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_e1d1effc","line":1067,"in_reply_to":"3f4b6375_c6f609d8","updated":"2017-11-02 19:44:58.000000000","message":"that was also my first iteration :) but I got in a spin trying to make the test mock times sensible since there is then no real reference point for mocking time to simulate \u0027delay until HEAD response\u0027. At least, I didn\u0027t see it quickly so came back to the immediate yield.","commit_id":"73d2c922c5e48c514cc915dfb6ce812859080d58"}]}
