Newer
Older
Vilem Duha
committed
import bpy
from bpy.app.handlers import persistent
Vilem Duha
committed
import queue
@persistent
def scene_load(context):
if not (bpy.app.timers.is_registered(queue_worker)):
bpy.app.timers.register(queue_worker)
# we pick just a random one of blender types, to try to get a persistent queue
t = bpy.types.Scene
if not hasattr(t, 'task_queue'):
t.task_queue = queue.Queue()
return t.task_queue
Vilem Duha
committed
q = get_queue()
while not q.empty():
utils.p('as a task: ')
print('window manager', bpy.context.window_manager)
try:
task[0](*task[1])
except Exception as e:
utils.p('task failed:')
print(e)
Vilem Duha
committed
return 2.0
Vilem Duha
committed
def register():
bpy.app.handlers.load_post.append(scene_load)
Vilem Duha
committed
def unregister():
bpy.app.handlers.load_post.remove(scene_load)