class IconCacheUpdater: def __init__(self): self.idle = Fifo() self.vital = Fifo() self.runningCount = 0 self.inShutdown = False @eventloop.as_idle def request_update(self, item, is_vital=False): if is_vital: item.dbItem.confirm_db_thread() if (item.filename and fileutil.access(item.filename, os.R_OK) and item.url == item.dbItem.get_thumbnail_url()): is_vital = False if self.runningCount < RUNNING_MAX: eventloop.add_idle(item.request_icon, "Icon Request") self.runningCount += 1 else: if is_vital: self.vital.enqueue(item) else: self.idle.enqueue(item) def update_finished(self): if self.inShutdown: self.runningCount -= 1 return if len(self.vital) > 0: item = self.vital.dequeue() elif len(self.idle) > 0: item = self.idle.dequeue() else: self.runningCount -= 1 return eventloop.add_idle(item.request_icon, "Icon Request") @eventloop.as_idle def clear_vital(self): self.vital = Fifo() @eventloop.as_idle def shutdown(self): self.inShutdown = True
class IconCacheUpdater: def __init__(self): self.idle = Fifo() self.vital = Fifo() self.running_count = 0 self.in_shutdown = False def request_update(self, item, is_vital=False): if is_vital: item.dbItem.confirm_db_thread() if (item.filename and fileutil.access(item.filename, os.R_OK) and item.url == item.dbItem.get_thumbnail_url()): is_vital = False if self.running_count < RUNNING_MAX: eventloop.add_idle(item.request_icon, "Icon Request") self.running_count += 1 else: if is_vital: self.vital.enqueue(item) else: self.idle.enqueue(item) def update_finished(self): if self.in_shutdown: self.running_count -= 1 return if len(self.vital) > 0: item = self.vital.dequeue() elif len(self.idle) > 0: item = self.idle.dequeue() else: self.running_count -= 1 return eventloop.add_idle(item.request_icon, "Icon Request") @eventloop.as_idle def clear_vital(self): self.vital = Fifo() @eventloop.as_idle def shutdown(self): self.in_shutdown = True
def clear_vital(self): self.vital = Fifo()
def __init__(self): self.idle = Fifo() self.vital = Fifo() self.running_count = 0 self.in_shutdown = False