)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"734a4124cf65af5ee8ffeb67b61e97486cb57aa0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6958973d_e1df66d5","updated":"2026-03-12 02:01:23.000000000","message":"Seems pretty straight-forward. I\u0027m realizing that we may want to write some migration docs (targeting out-of-tree developers), too...","commit_id":"32a3dbb3a7dd4b4c0d3f60b4b46fe652e62f6381"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"8bbd096f971774485ef78a6498ab25ba7337deeb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8a054530_740459ec","updated":"2026-03-09 16:11:22.000000000","message":"recheck","commit_id":"32a3dbb3a7dd4b4c0d3f60b4b46fe652e62f6381"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"02b3cf76e86b5cc24c1abed558f236d97b1278c9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ca401268_542e879d","in_reply_to":"28e8cb5c_88384dce","updated":"2026-03-13 15:38:49.000000000","message":"I was thinking a doc file in repo.","commit_id":"32a3dbb3a7dd4b4c0d3f60b4b46fe652e62f6381"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"1294f3236530a7711cb2b8f7ad40ed301d42015c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"28e8cb5c_88384dce","in_reply_to":"6958973d_e1df66d5","updated":"2026-03-13 11:25:28.000000000","message":"Indeed! I\u0027m wondering if we should add a \"DocImpact\", \"UpgradeImpact\", \"EventletMigrationImpact\" or sth similar to commit messages that need them? To keep track of them? Or shall we start directly with a doc file in the repo and add successively these notes?","commit_id":"32a3dbb3a7dd4b4c0d3f60b4b46fe652e62f6381"}],"swift/common/utils/__init__.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"734a4124cf65af5ee8ffeb67b61e97486cb57aa0","unresolved":true,"context_lines":[{"line_number":53,"context_line":"    from eventlet import sleep"},{"line_number":54,"context_line":"else:"},{"line_number":55,"context_line":"    def sleep(seconds\u003d0):"},{"line_number":56,"context_line":"        time.sleep(seconds)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"import eventlet"},{"line_number":59,"context_line":"import eventlet.debug"}],"source_content_type":"text/x-python","patch_set":2,"id":"53fc03b3_55a7c8c0","line":56,"updated":"2026-03-12 02:01:23.000000000","message":"Makes me wonder how many places we\u0027ve throw in a\n```\nsleep()  # give other greenthreads a chance\n```\nover the years...\n\nAlso makes me wonder if we might want to say\n```\nif seconds:\n    time.sleep(seconds)\n```\nApparently, `sleep(0)` costs more than the check (though it\u0027s all sub-microsecond)\n```\n% python -m timeit -s \u0027import time\u0027 \u0027time.sleep(0)\u0027\n2000000 loops, best of 5: 156 nsec per loop\n% python -m timeit -s \u0027import time\u0027 \u0027if False: time.sleep(0)\u0027\n100000000 loops, best of 5: 2.51 nsec per loop\n```","commit_id":"32a3dbb3a7dd4b4c0d3f60b4b46fe652e62f6381"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"1294f3236530a7711cb2b8f7ad40ed301d42015c","unresolved":true,"context_lines":[{"line_number":53,"context_line":"    from eventlet import sleep"},{"line_number":54,"context_line":"else:"},{"line_number":55,"context_line":"    def sleep(seconds\u003d0):"},{"line_number":56,"context_line":"        time.sleep(seconds)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"import eventlet"},{"line_number":59,"context_line":"import eventlet.debug"}],"source_content_type":"text/x-python","patch_set":2,"id":"9c45be14_1c9d8b32","line":56,"in_reply_to":"53fc03b3_55a7c8c0","updated":"2026-03-13 11:25:28.000000000","message":"Was thinking of this as well. Will include this in the next patchset.","commit_id":"32a3dbb3a7dd4b4c0d3f60b4b46fe652e62f6381"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"baae9282fb57e37ce4da71dda374f294f5c5f238","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    from eventlet import sleep"},{"line_number":54,"context_line":"else:"},{"line_number":55,"context_line":"    def sleep(seconds\u003d0):"},{"line_number":56,"context_line":"        time.sleep(seconds)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"import eventlet"},{"line_number":59,"context_line":"import eventlet.debug"}],"source_content_type":"text/x-python","patch_set":2,"id":"ea0c0793_2c52b552","line":56,"in_reply_to":"9c45be14_1c9d8b32","updated":"2026-03-13 16:52:56.000000000","message":"Done","commit_id":"32a3dbb3a7dd4b4c0d3f60b4b46fe652e62f6381"}]}
