Skip to content
Snippets Groups Projects
tasks_queue.py 805 B
Newer Older
  • Learn to ignore specific revisions
  • Vilem Duha's avatar
    Vilem Duha committed
    from blenderkit import utils
    
    def get_queue():
        if not hasattr(bpy.types.VIEW3D_PT_blenderkit_unified, 'task_queue'):
            bpy.types.VIEW3D_PT_blenderkit_unified.task_queue = queue.Queue()
        return bpy.types.VIEW3D_PT_blenderkit_unified.task_queue
    
    
    def add_task(task):
        q = get_queue()
        q.put(task)
    
    Vilem Duha's avatar
    Vilem Duha committed
        q = get_queue()
    
        while not q.empty():
            utils.p('as a task:   ')
            q = bpy.types.VIEW3D_PT_blenderkit_unified.task_queue
            task = q.get()
            try:
                task[0](*task[1])
            except Exception as e:
                utils.p('task failed:')
                print(e)
    
    Vilem Duha's avatar
    Vilem Duha committed
    
    
    def register():
        bpy.app.timers.register(every_2_seconds)
    
    
    Vilem Duha's avatar
    Vilem Duha committed
    
    
    Vilem Duha's avatar
    Vilem Duha committed
        bpy.app.timers.unregister(every_2_seconds)