)]}'
{"aodh/evaluator/__init__.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0097e4c9c54826ee1a8e950989b3029924409a30","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        t \u003d threading.Thread(target\u003dself.periodic.start)"},{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_dc5d217b","line":263,"updated":"2016-04-21 13:02:47.000000000","message":"do we need to kill this thread with .join() on stop? or is it not needed because it\u0027s a daemon?","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8265687674c20833304badbb8f3c6b37ebbac3ae","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        t \u003d threading.Thread(target\u003dself.periodic.start)"},{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_92e6ed42","line":263,"in_reply_to":"1a122d0e_470bfe2b","updated":"2016-04-21 14:35:37.000000000","message":"i was asking more about the thread[1] and not the task.\n\n[1] https://github.com/openstack/ceilometer/blob/master/ceilometer/collector.py#L145","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"26194ec51e9990b779d14f697c4846bec907e3ae","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        t \u003d threading.Thread(target\u003dself.periodic.start)"},{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_b577939e","line":263,"in_reply_to":"1a122d0e_92e6ed42","updated":"2016-04-21 14:47:44.000000000","message":"I\u0027m a bit confused, are you talking about the aodh evaluator or ceilometer collector?\n\nfor aodh evaluator, it is fine not to join because periodics already do a wait() which will acquire a lock, then exit gracefully\n\nfor ceilometer collector, it is just a simple thread, to let it exit gracefully, we need to wait it end because after we set the flag, some task may not finish\n\nor do I misunderstand something? please let me know, thanks :)","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"ee0f176310aea711ac292c2a472c070df2e062ce","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        t \u003d threading.Thread(target\u003dself.periodic.start)"},{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_3521c3b5","line":263,"in_reply_to":"1a122d0e_b577939e","updated":"2016-04-21 15:03:17.000000000","message":"makes sense. just want to clarify. thanks!","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"5994a4271cc360ca9b8aee9936be0f624c7f4fbe","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        t \u003d threading.Thread(target\u003dself.periodic.start)"},{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_470bfe2b","line":263,"in_reply_to":"1a122d0e_dc5d217b","updated":"2016-04-21 13:30:49.000000000","message":"I think wait() is enough: \n\nhttp://docs.openstack.org/developer/futurist/api.html#futurist.periodics.PeriodicWorker.wait\n\nhttps://github.com/openstack/futurist/blob/master/futurist/periodics.py","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a22caf9a0db3c5599df123991a4136e1c9c27da4","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"},{"line_number":267,"context_line":"        # Add a dummy thread to have wait() working"},{"line_number":268,"context_line":"        self.tg.add_timer(604800, lambda: None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_9366fc27","line":265,"updated":"2016-04-21 12:58:49.000000000","message":"drop oslo.service to drop ...?","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8265687674c20833304badbb8f3c6b37ebbac3ae","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"},{"line_number":267,"context_line":"        # Add a dummy thread to have wait() working"},{"line_number":268,"context_line":"        self.tg.add_timer(604800, lambda: None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_52c3b58a","line":265,"in_reply_to":"1a122d0e_878fd674","updated":"2016-04-21 14:35:37.000000000","message":"that\u0027s fine. it says something different in ceilometer but i get the idea","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"5994a4271cc360ca9b8aee9936be0f624c7f4fbe","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        t.daemon \u003d True"},{"line_number":263,"context_line":"        t.start()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # NOTE(sileht): We have to drop eventlet to drop this last eventlet"},{"line_number":266,"context_line":"        # thread"},{"line_number":267,"context_line":"        # Add a dummy thread to have wait() working"},{"line_number":268,"context_line":"        self.tg.add_timer(604800, lambda: None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_878fd674","line":265,"in_reply_to":"1a122d0e_9366fc27","updated":"2016-04-21 13:30:49.000000000","message":"cp from ceilometer :P\n\nI think sileht means remove eventlet style oslo.service so we can remove this last dummy thread","commit_id":"5200ec703ffce8b68dca012c9f3769a50ef75696"}]}
