Commit: 9c756162aed5354ff3d4fd7ba6c84253b39d14fa Author: Bastien Montagne Date: Mon Jan 9 10:43:23 2017 +0100 Branches: master https://developer.blender.org/rB9c756162aed5354ff3d4fd7ba6c84253b39d14fa
Fix T50385: Deadlock in BKE_libblock_remap_locked. Am pretty sure node update should not touch to Main database like that, but for now let's allow it, I guess the hack is needed for things like Sverchok. ;) =================================================================== M source/blender/blenkernel/intern/library_remap.c =================================================================== diff --git a/source/blender/blenkernel/intern/library_remap.c b/source/blender/blenkernel/intern/library_remap.c index f76fc628ed..d7d566a9ec 100644 --- a/source/blender/blenkernel/intern/library_remap.c +++ b/source/blender/blenkernel/intern/library_remap.c @@ -562,8 +562,14 @@ void BKE_libblock_remap_locked( default: break; } + /* Node trees may virtually use any kind of data-block... */ + /* XXX Yuck!!!! nodetree update can do pretty much any thing when talking about py nodes, + * including creating new data-blocks (see T50385), so we need to unlock main here. :( + * Why can't we have re-entrent locks? */ + BKE_main_unlock(bmain); libblock_remap_data_postprocess_nodetree_update(bmain, new_id); + BKE_main_lock(bmain); /* Full rebuild of DAG! */ DAG_relations_tag_update(bmain); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs