Fix T101618: Freeze when reloading a library in certain situation
Freeze happened when reloading a library while having an Object property with a custom getter function defined in Python. Just piggybacking on rB62eb21e3ce87, this just applies the same fix (use the BPy_BEGIN/END_ALLOW_THREADS macros) to relading from RNA/py. All credit goes to @brecht and @mont29. Maniphest Tasks: T101618 Differential Revision: https://developer.blender.org/D16167
This commit is contained in:
parent
a01ab2b4e0
commit
423c1366b0
Notes:
blender-bot
2023-02-14 08:45:09 +01:00
Referenced by issue #100749, Blender LTS: Maintenance Task 3.3 Referenced by issue #101618, Freeze when reloading a library while having an Object property with a custom getter function defined in Python
|
@ -1392,6 +1392,19 @@ static void rna_Library_version_get(PointerRNA *ptr, int *value)
|
|||
value[2] = lib->subversionfile;
|
||||
}
|
||||
|
||||
static void rna_Library_reload(Library *lib, bContext *C, ReportList *reports)
|
||||
{
|
||||
# ifdef WITH_PYTHON
|
||||
BPy_BEGIN_ALLOW_THREADS;
|
||||
# endif
|
||||
|
||||
WM_lib_reload(lib, C, reports);
|
||||
|
||||
# ifdef WITH_PYTHON
|
||||
BPy_END_ALLOW_THREADS;
|
||||
# endif
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static void rna_def_ID_properties(BlenderRNA *brna)
|
||||
|
@ -2239,7 +2252,7 @@ static void rna_def_library(BlenderRNA *brna)
|
|||
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||
RNA_def_property_flag(prop, PROP_THICK_WRAP);
|
||||
|
||||
func = RNA_def_function(srna, "reload", "WM_lib_reload");
|
||||
func = RNA_def_function(srna, "reload", "rna_Library_reload");
|
||||
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_CONTEXT);
|
||||
RNA_def_function_ui_description(func, "Reload this library and all its linked data-blocks");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue