)]}'
{"nova/virt/hyperv/ioutils.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"8a1d6b7d293180b4db644b0bf55c94027c5317e1","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class IOQueue(Queue.Queue):"},{"line_number":293,"context_line":"    def __init__(self, client_connected):"},{"line_number":294,"context_line":"        Queue.Queue.__init__(self)"},{"line_number":295,"context_line":"        self._client_connected \u003d client_connected"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def get(self, timeout\u003dIO_QUEUE_TIMEOUT, continue_on_timeout\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_9625400a","line":294,"updated":"2015-07-22 12:54:40.000000000","message":"um, you mean super(IOQueue, self).__init__()?\n\nif not, why does IOQueue has to extend Queue.Queue?","commit_id":"53ef3736efe2bbe19d055b10dc3d597290fa17ef"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"f00a378d195475aecb1791553255a2443ee28cf6","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class IOQueue(Queue.Queue):"},{"line_number":293,"context_line":"    def __init__(self, client_connected):"},{"line_number":294,"context_line":"        Queue.Queue.__init__(self)"},{"line_number":295,"context_line":"        self._client_connected \u003d client_connected"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def get(self, timeout\u003dIO_QUEUE_TIMEOUT, continue_on_timeout\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_24011d6b","line":294,"in_reply_to":"3a50d1a3_2b5b7387","updated":"2015-07-30 12:47:56.000000000","message":"Hm, it seems that Queue.Queue is not really an \"object-like class\", which means super(IOQueue, self).__init__() doesn\u0027t work. This is the way to do it then. Sorry for the confussion!","commit_id":"53ef3736efe2bbe19d055b10dc3d597290fa17ef"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"daeb0de7abb72fe93a2c58a153f96b1b4a802896","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class IOQueue(Queue.Queue):"},{"line_number":293,"context_line":"    def __init__(self, client_connected):"},{"line_number":294,"context_line":"        Queue.Queue.__init__(self)"},{"line_number":295,"context_line":"        self._client_connected \u003d client_connected"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def get(self, timeout\u003dIO_QUEUE_TIMEOUT, continue_on_timeout\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_b6d38a03","line":294,"in_reply_to":"3a50d1a3_44b7023a","updated":"2015-07-22 17:11:20.000000000","message":"Still, what is the use of extending Queue.Queue in the first place?","commit_id":"53ef3736efe2bbe19d055b10dc3d597290fa17ef"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"369ff5929566aa2eea212deca51f4401c7555d02","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class IOQueue(Queue.Queue):"},{"line_number":293,"context_line":"    def __init__(self, client_connected):"},{"line_number":294,"context_line":"        Queue.Queue.__init__(self)"},{"line_number":295,"context_line":"        self._client_connected \u003d client_connected"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def get(self, timeout\u003dIO_QUEUE_TIMEOUT, continue_on_timeout\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_44b7023a","line":294,"in_reply_to":"3a50d1a3_9625400a","updated":"2015-07-22 13:10:41.000000000","message":"Queue.Queue does not inherit \"object\" so you cannot use super in this case.","commit_id":"53ef3736efe2bbe19d055b10dc3d597290fa17ef"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"dcfc0e8525bbfbe95cfeb7850c83f57546065080","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class IOQueue(Queue.Queue):"},{"line_number":293,"context_line":"    def __init__(self, client_connected):"},{"line_number":294,"context_line":"        Queue.Queue.__init__(self)"},{"line_number":295,"context_line":"        self._client_connected \u003d client_connected"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def get(self, timeout\u003dIO_QUEUE_TIMEOUT, continue_on_timeout\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_2b5b7387","line":294,"in_reply_to":"3a50d1a3_b6d38a03","updated":"2015-07-29 09:29:44.000000000","message":"Basically this class extends the functionality of the built in Queue.Queue class. The purpose of it is having blocking operations that can easily be canceled by using signals.","commit_id":"53ef3736efe2bbe19d055b10dc3d597290fa17ef"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"8a1d6b7d293180b4db644b0bf55c94027c5317e1","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        # to avoid sending small chunks."},{"line_number":319,"context_line":"        data \u003d self.get(timeout\u003dtimeout)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        while data and not (len(data) \u003e max_size):"},{"line_number":322,"context_line":"            chunk \u003d self.get(timeout\u003dburst_timeout,"},{"line_number":323,"context_line":"                             continue_on_timeout\u003dFalse)"},{"line_number":324,"context_line":"            if chunk:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_56a57844","line":321,"updated":"2015-07-22 12:54:40.000000000","message":"IMO, it looks better:\n\n    while data and len(data) \u003c max_size:\n\nalso, checking if data at every loop isn\u0027t that efficient. so:\n\n    data \u003d self.get(timeout\u003dtimeout)\n    if not data:\n        return data\n\n    while len(data) \u003e max_size:\n        ...","commit_id":"53ef3736efe2bbe19d055b10dc3d597290fa17ef"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"369ff5929566aa2eea212deca51f4401c7555d02","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        # to avoid sending small chunks."},{"line_number":319,"context_line":"        data \u003d self.get(timeout\u003dtimeout)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        while data and not (len(data) \u003e max_size):"},{"line_number":322,"context_line":"            chunk \u003d self.get(timeout\u003dburst_timeout,"},{"line_number":323,"context_line":"                             continue_on_timeout\u003dFalse)"},{"line_number":324,"context_line":"            if chunk:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_a4f7e689","line":321,"in_reply_to":"3a50d1a3_56a57844","updated":"2015-07-22 13:10:41.000000000","message":"Agreed, will change this.","commit_id":"53ef3736efe2bbe19d055b10dc3d597290fa17ef"}]}
