)]}'
{"nodepool/driver/statemachine.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6cbedc4d9e800220d469b886e0f1556f18bc8e25","unresolved":true,"context_lines":[{"line_number":570,"context_line":"        if self.state_machine_thread:"},{"line_number":571,"context_line":"            self.state_machine_thread.join()"},{"line_number":572,"context_line":"        if self.stop_thread:"},{"line_number":573,"context_line":"            self.stop_thread.join()"},{"line_number":574,"context_line":"        self.log.debug(\"Joined\")"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def _runStateMachines(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"86a3dad7_6ce4a3f6","line":573,"updated":"2023-03-07 18:18:50.000000000","message":"The order of joins here appears to be correct since _stop() sets self.running to False which will cause _runStateMachine() to eventually exit. We wait for it to exit first. Then wait for the _stop() thread to exit which has processing after the self.running flag is set to False.","commit_id":"da5928423031c0b3ab52dbd3a9a4b5cbeb87ab0e"}]}
