fix: Python.exe sometimes dont shut down in task manager processes
fix: disconnect attempt when the session is not running Related to slumber/multi-user#94
This commit is contained in:
@ -47,7 +47,8 @@ from . import environment, utils
|
|||||||
DEPENDENCIES = {
|
DEPENDENCIES = {
|
||||||
("zmq","zmq"),
|
("zmq","zmq"),
|
||||||
("jsondiff","jsondiff"),
|
("jsondiff","jsondiff"),
|
||||||
("deepdiff", "deepdiff")
|
("deepdiff", "deepdiff"),
|
||||||
|
("psutil","psutil")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Submodule multi_user/libs/replication updated: 5e0b0766d7...3400d7c293
@ -198,7 +198,7 @@ class SessionInitOperator(bpy.types.Operator):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def poll(cls, context):
|
def poll(cls, context):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
layout = self.layout
|
||||||
col = layout.column()
|
col = layout.column()
|
||||||
@ -210,18 +210,18 @@ class SessionInitOperator(bpy.types.Operator):
|
|||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
global client
|
global client
|
||||||
|
|
||||||
if self.init_method == 'EMPTY':
|
if self.init_method == 'EMPTY':
|
||||||
utils.clean_scene()
|
utils.clean_scene()
|
||||||
|
|
||||||
for scene in bpy.data.scenes:
|
for scene in bpy.data.scenes:
|
||||||
client.add(scene)
|
client.add(scene)
|
||||||
|
|
||||||
client.init()
|
client.init()
|
||||||
|
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
class SessionStopOperator(bpy.types.Operator):
|
class SessionStopOperator(bpy.types.Operator):
|
||||||
bl_idname = "session.stop"
|
bl_idname = "session.stop"
|
||||||
bl_label = "close"
|
bl_label = "close"
|
||||||
@ -234,12 +234,15 @@ class SessionStopOperator(bpy.types.Operator):
|
|||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
global client, delayables, stop_modal_executor
|
global client, delayables, stop_modal_executor
|
||||||
assert(client)
|
|
||||||
|
|
||||||
try:
|
if client:
|
||||||
client.disconnect()
|
try:
|
||||||
except Exception as e:
|
client.disconnect()
|
||||||
self.report({'ERROR'}, repr(e))
|
except Exception as e:
|
||||||
|
self.report({'ERROR'}, repr(e))
|
||||||
|
else:
|
||||||
|
self.report({'WARNING'}, "No session to quit.")
|
||||||
|
return {"FINISHED"}
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
@ -558,6 +561,7 @@ classes = (
|
|||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@persistent
|
@persistent
|
||||||
def sanitize_deps_graph(dummy):
|
def sanitize_deps_graph(dummy):
|
||||||
"""sanitize deps graph
|
"""sanitize deps graph
|
||||||
@ -594,7 +598,6 @@ def register():
|
|||||||
for cls in classes:
|
for cls in classes:
|
||||||
register_class(cls)
|
register_class(cls)
|
||||||
|
|
||||||
|
|
||||||
bpy.app.handlers.undo_post.append(sanitize_deps_graph)
|
bpy.app.handlers.undo_post.append(sanitize_deps_graph)
|
||||||
bpy.app.handlers.redo_post.append(sanitize_deps_graph)
|
bpy.app.handlers.redo_post.append(sanitize_deps_graph)
|
||||||
|
|
||||||
@ -602,7 +605,6 @@ def register():
|
|||||||
bpy.app.handlers.frame_change_pre.append(update_client_frame)
|
bpy.app.handlers.frame_change_pre.append(update_client_frame)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
global client
|
global client
|
||||||
|
|
||||||
@ -617,7 +619,6 @@ def unregister():
|
|||||||
bpy.app.handlers.undo_post.remove(sanitize_deps_graph)
|
bpy.app.handlers.undo_post.remove(sanitize_deps_graph)
|
||||||
bpy.app.handlers.redo_post.remove(sanitize_deps_graph)
|
bpy.app.handlers.redo_post.remove(sanitize_deps_graph)
|
||||||
|
|
||||||
|
|
||||||
bpy.app.handlers.load_pre.remove(load_pre_handler)
|
bpy.app.handlers.load_pre.remove(load_pre_handler)
|
||||||
bpy.app.handlers.frame_change_pre.remove(update_client_frame)
|
bpy.app.handlers.frame_change_pre.remove(update_client_frame)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user