)]}'
{"oslo_service/loopingcall.py":[{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"8f2e45628f3e98682a29af839dcba442fca9c632","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                            {\u0027func_name\u0027: self.f, \u0027delay\u0027: delay})"},{"line_number":112,"context_line":"            return -delay if delay \u003c 0 else 0"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        def _on_done(gt, *args, **kwargs):"},{"line_number":115,"context_line":"            self._thread \u003d None"},{"line_number":116,"context_line":"            self._running \u003d False"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_da108950","line":114,"updated":"2015-06-25 09:04:59.000000000","message":"Can this method be moved to LoopingCallBase, so that we avoid duplication with DynamicLoopingCall?","commit_id":"84a1872facf8f2f52cbe7d12361b14b481985df6"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"da1061c2a3d50e4a912222d2fc524af9fbc02146","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                            {\u0027func_name\u0027: self.f, \u0027delay\u0027: delay})"},{"line_number":112,"context_line":"            return -delay if delay \u003c 0 else 0"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        def _on_done(gt, *args, **kwargs):"},{"line_number":115,"context_line":"            self._thread \u003d None"},{"line_number":116,"context_line":"            self._running \u003d False"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_3e4e3438","line":114,"in_reply_to":"fa32b979_da108950","updated":"2015-06-25 15:52:05.000000000","message":"Sure.","commit_id":"84a1872facf8f2f52cbe7d12361b14b481985df6"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"6c9c834e2d8bba5f3a2ae4365472fb98931b5289","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    _KIND \u003d _(\u0027Fixed interval looping call\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def start(self, interval, initial_delay\u003dNone):"},{"line_number":106,"context_line":"        if self._thread is not None:"},{"line_number":107,"context_line":"            raise RuntimeError(\"A fixed interval looping call can only run\""},{"line_number":108,"context_line":"                               \" one function at a time\")"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_2f9a31c6","line":106,"updated":"2015-06-27 13:19:13.000000000","message":"It looks like start() methods in FixedIntervalLoopingCall and DynamicLoopingCall are similar. There are only two differences: error message and inner function _idle_for().\nCould you please redesign it: move start() method into base class and add _idle_for() methods to FixedIntervalLoopingCall and DynamicLoopingCall classes.","commit_id":"1c9813f1551963be3345b73d42e464d99f6f4b66"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"52a914d71770293bd0f511286d6fbf1d09b2918a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    _KIND \u003d _(\u0027Fixed interval looping call\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def start(self, interval, initial_delay\u003dNone):"},{"line_number":106,"context_line":"        if self._thread is not None:"},{"line_number":107,"context_line":"            raise RuntimeError(\"A fixed interval looping call can only run\""},{"line_number":108,"context_line":"                               \" one function at a time\")"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_8f4b6c59","line":106,"in_reply_to":"fa32b979_2f9a31c6","updated":"2015-06-29 14:27:10.000000000","message":"Sure.","commit_id":"1c9813f1551963be3345b73d42e464d99f6f4b66"}]}
