Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
 def clear_vital(self):
     self.vital = Fifo()
Exemplo n.º 4
0
 def __init__(self):
     self.idle = Fifo()
     self.vital = Fifo()
     self.running_count = 0
     self.in_shutdown = False
Exemplo n.º 5
0
 def clear_vital(self):
     self.vital = Fifo()
Exemplo n.º 6
0
 def __init__(self):
     self.idle = Fifo()
     self.vital = Fifo()
     self.running_count = 0
     self.in_shutdown = False