Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'blenderkit/tasks_queue.py')
-rw-r--r--blenderkit/tasks_queue.py32
1 files changed, 25 insertions, 7 deletions
diff --git a/blenderkit/tasks_queue.py b/blenderkit/tasks_queue.py
index 08ac90bf..55029753 100644
--- a/blenderkit/tasks_queue.py
+++ b/blenderkit/tasks_queue.py
@@ -2,19 +2,37 @@ import bpy
import queue
-import blenderkit
+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)
-tasks_queue = queue.Queue()
def every_2_seconds():
- while not tasks_queue.empty():
- print('as a task: ')
- fstring = tasks_queue.get()
- eval(fstring)
+ 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)
return 2.0
+
def register():
bpy.app.timers.register(every_2_seconds)
+
def unregister():
- bpy.app.timers.unregister(every_2_seconds) \ No newline at end of file
+ bpy.app.timers.unregister(every_2_seconds)