)]}'
{"trove/tests/util/event_simulator.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3e58689d4cf32cc73a50b0ea07964a762e07957d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* eventlet.sleep"},{"line_number":42,"context_line":"* greenthread.sleep"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"A few spawn methods with a fake_spawn"},{"line_number":45,"context_line":"* eventlet.spawn_after"},{"line_number":46,"context_line":"* eventlet.spawn_n"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_2b88bcc4","line":44,"updated":"2017-03-10 19:47:34.000000000","message":"missing a period \u0027.\u0027 here.","commit_id":"8b1519d1aa8b7ba4bcbcba6364b30eb06bc5d9b4"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3e58689d4cf32cc73a50b0ea07964a762e07957d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"}"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"\u0027sleep\u0027 is the time it should wait to execute this method."},{"line_number":79,"context_line":"\u0027greenlet\u0027 is the thread object"},{"line_number":80,"context_line":"\u0027name\u0027 is the unique name of the thread to track"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"main_loop Method"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_1e3974d7","line":79,"updated":"2017-03-10 19:47:34.000000000","message":"missing a period \u0027.\u0027 here","commit_id":"8b1519d1aa8b7ba4bcbcba6364b30eb06bc5d9b4"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3e58689d4cf32cc73a50b0ea07964a762e07957d","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"\u0027sleep\u0027 is the time it should wait to execute this method."},{"line_number":79,"context_line":"\u0027greenlet\u0027 is the thread object"},{"line_number":80,"context_line":"\u0027name\u0027 is the unique name of the thread to track"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"main_loop Method"},{"line_number":83,"context_line":"----------------"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_5e2f6c87","line":80,"updated":"2017-03-10 19:47:34.000000000","message":"Missing a period \u0027.\u0027 here.","commit_id":"8b1519d1aa8b7ba4bcbcba6364b30eb06bc5d9b4"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3e58689d4cf32cc73a50b0ea07964a762e07957d","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"The main_loop method is a loop that runs forever waiting on all the"},{"line_number":86,"context_line":"threads to complete while running pulse every 0.1 seconds. This is the"},{"line_number":87,"context_line":"key to simulated the threads quickly. We are pulsing every 0.1"},{"line_number":88,"context_line":"seconds looking to make sure there are no threads just waiting around for"},{"line_number":89,"context_line":"no reason rather than waiting a full second to respond."},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_6b2ab491","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":16},"updated":"2017-03-10 19:47:34.000000000","message":"simulating","commit_id":"8b1519d1aa8b7ba4bcbcba6364b30eb06bc5d9b4"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3e58689d4cf32cc73a50b0ea07964a762e07957d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"The pulse method is going through the stack(list) of threads looking for"},{"line_number":95,"context_line":"the next thread to execute while updating the \u0027sleep\u0027 time and the if"},{"line_number":96,"context_line":"the \u0027sleep\u0027 time is \u003c\u003d0 then it will run this thread until it calls for"},{"line_number":97,"context_line":"another time.sleep."},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_be086829","line":95,"range":{"start_line":95,"start_character":63,"end_line":95,"end_character":66},"updated":"2017-03-10 19:47:34.000000000","message":"then","commit_id":"8b1519d1aa8b7ba4bcbcba6364b30eb06bc5d9b4"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3e58689d4cf32cc73a50b0ea07964a762e07957d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"the thread\u0027s \u0027sleep\u0027 parameter is updated to the new \u0027next_sleep_time\u0027."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"If the method/thread running completes without calling time.sleep because it"},{"line_number":103,"context_line":"finished all work needed to be done then there the \u0027next_sleep_time\u0027 is set"},{"line_number":104,"context_line":"to None and the method/thread is deleted from the stack(list) of threads."},{"line_number":105,"context_line":"\"\"\""},{"line_number":106,"context_line":"import eventlet"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_8b3448fc","line":103,"range":{"start_line":103,"start_character":41,"end_line":103,"end_character":46},"updated":"2017-03-10 19:47:34.000000000","message":"this looks like a typo too. I suggest to remove it.","commit_id":"8b1519d1aa8b7ba4bcbcba6364b30eb06bc5d9b4"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3e58689d4cf32cc73a50b0ea07964a762e07957d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    \"\"\""},{"line_number":114,"context_line":"    This class simulates a coroutine, which is ironic, as greenlet actually"},{"line_number":115,"context_line":"    *is* a coroutine. But trying to use greenlet here gives nasty results"},{"line_number":116,"context_line":"    since eventlet thoroughly monkey-patches things, making it difficult"},{"line_number":117,"context_line":"    to run greenlet on its own."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    Essentially think of this as a wrapper for eventlet\u0027s threads which has a"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_3ec8f873","line":116,"range":{"start_line":116,"start_character":30,"end_line":116,"end_character":44},"updated":"2017-03-10 19:47:34.000000000","message":"this should just be \u0027monkey patches\u0027. No hyphenation.\n\nsee https://en.wikipedia.org/wiki/Monkey_patch","commit_id":"8b1519d1aa8b7ba4bcbcba6364b30eb06bc5d9b4"}]}
