obs-scripting: Use a recursive mutex for Lua scripting
This enables stacking of Lua driven filters of the same kind without freezing OBS Studio in place, or even crashing.
This commit is contained in:
parent
36a123f653
commit
cdc613a5ea
@ -641,7 +641,12 @@ static int obs_lua_register_source(lua_State *script)
|
|||||||
if (!existing) {
|
if (!existing) {
|
||||||
ls.data = current_lua_script;
|
ls.data = current_lua_script;
|
||||||
|
|
||||||
pthread_mutex_init(&ls.definition_mutex, NULL);
|
pthread_mutexattr_t mutexattr;
|
||||||
|
pthread_mutexattr_init(&mutexattr);
|
||||||
|
pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE);
|
||||||
|
pthread_mutex_init(&ls.definition_mutex, &mutexattr);
|
||||||
|
pthread_mutexattr_destroy(&mutexattr);
|
||||||
|
|
||||||
info.type_data = bmemdup(&ls, sizeof(ls));
|
info.type_data = bmemdup(&ls, sizeof(ls));
|
||||||
info.free_type_data = obs_lua_source_free_type_data;
|
info.free_type_data = obs_lua_source_free_type_data;
|
||||||
info.get_name = obs_lua_source_get_name;
|
info.get_name = obs_lua_source_get_name;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user