)]}'
{"oslo_messaging/_drivers/zmq_driver/client/zmq_publisher_manager.py":[{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"e0ca190561eb23f0faebec66b4b49cd7634776b4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                as socket:"},{"line_number":129,"context_line":"            self.publisher.send_request(socket, request)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def _send_non_blocking(self, request):"},{"line_number":132,"context_line":"        self._pool.submit(self._send, request)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    send_cast \u003d _send_non_blocking"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_3e66162a","line":131,"updated":"2016-11-11 13:48:17.000000000","message":"Please don\u0027t perform background send for pub/sub configurations and single casts.\n\nBackground sending makes sense only for fanout direct connections and router-proxy no-pub-sub.","commit_id":"88a12ab875c526528fdc6c01766e00a7996131e9"}],"oslo_messaging/_drivers/zmq_driver/client/zmq_routing_table.py":[{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"e0ca190561eb23f0faebec66b4b49cd7634776b4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.conf \u003d conf"},{"line_number":36,"context_line":"        self.matchmaker \u003d matchmaker"},{"line_number":37,"context_line":"        self.listener_type \u003d listener_type"},{"line_number":38,"context_line":"        self._lock \u003d threading.RLock()"},{"line_number":39,"context_line":"        self.routing_table \u003d RoutingTable(conf, self._lock)"},{"line_number":40,"context_line":"        self.routing_table_updater \u003d RoutingTableUpdater("},{"line_number":41,"context_line":"            conf, matchmaker, self.routing_table)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_3e1b7682","line":38,"updated":"2016-11-11 13:48:17.000000000","message":"I\u0027d prefer simple lock here and not passing it to the routing table.","commit_id":"88a12ab875c526528fdc6c01766e00a7996131e9"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"6c375e0f8ab89adbfc7f8e578c809fa25c203bdc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.conf \u003d conf"},{"line_number":36,"context_line":"        self.matchmaker \u003d matchmaker"},{"line_number":37,"context_line":"        self.listener_type \u003d listener_type"},{"line_number":38,"context_line":"        self._lock \u003d threading.RLock()"},{"line_number":39,"context_line":"        self.routing_table \u003d RoutingTable(conf, self._lock)"},{"line_number":40,"context_line":"        self.routing_table_updater \u003d RoutingTableUpdater("},{"line_number":41,"context_line":"            conf, matchmaker, self.routing_table)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_918710b4","line":38,"in_reply_to":"9a629dbe_3e1b7682","updated":"2016-11-11 14:55:54.000000000","message":"Done","commit_id":"88a12ab875c526528fdc6c01766e00a7996131e9"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"e0ca190561eb23f0faebec66b4b49cd7634776b4","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        LOG.debug(\"Processing target %s for round-robin.\" % target_key)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        with self._lock:"},{"line_number":51,"context_line":"            if target_key not in self.round_robin_targets:"},{"line_number":52,"context_line":"                LOG.debug(\"Target %s is not in cache. Check matchmaker server.\""},{"line_number":53,"context_line":"                          % target_key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_4f95d630","line":50,"updated":"2016-11-11 13:48:17.000000000","message":"Lets use double-checked locking here","commit_id":"88a12ab875c526528fdc6c01766e00a7996131e9"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"6c375e0f8ab89adbfc7f8e578c809fa25c203bdc","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        LOG.debug(\"Processing target %s for round-robin.\" % target_key)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        with self._lock:"},{"line_number":51,"context_line":"            if target_key not in self.round_robin_targets:"},{"line_number":52,"context_line":"                LOG.debug(\"Target %s is not in cache. Check matchmaker server.\""},{"line_number":53,"context_line":"                          % target_key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_b19254f4","line":50,"in_reply_to":"9a629dbe_4f95d630","updated":"2016-11-11 14:55:54.000000000","message":"Done","commit_id":"88a12ab875c526528fdc6c01766e00a7996131e9"}]}
