mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 04:42:18 +02:00
libobs/util: Fix pthread mutex leaks
This commit is contained in:
parent
0c208f1e62
commit
8a43c55918
@ -61,16 +61,6 @@ struct config_data {
|
||||
pthread_mutex_t mutex;
|
||||
};
|
||||
|
||||
static inline bool init_mutex(config_t *config)
|
||||
{
|
||||
pthread_mutexattr_t attr;
|
||||
if (pthread_mutexattr_init(&attr) != 0)
|
||||
return false;
|
||||
if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0)
|
||||
return false;
|
||||
return pthread_mutex_init(&config->mutex, &attr) == 0;
|
||||
}
|
||||
|
||||
config_t *config_create(const char *file)
|
||||
{
|
||||
struct config_data *config;
|
||||
@ -83,7 +73,7 @@ config_t *config_create(const char *file)
|
||||
|
||||
config = bzalloc(sizeof(struct config_data));
|
||||
|
||||
if (!init_mutex(config)) {
|
||||
if (pthread_mutex_init_recursive(&config->mutex) != 0) {
|
||||
bfree(config);
|
||||
return NULL;
|
||||
}
|
||||
@ -302,7 +292,7 @@ int config_open(config_t **config, const char *file,
|
||||
if (!*config)
|
||||
return CONFIG_ERROR;
|
||||
|
||||
if (!init_mutex(*config)) {
|
||||
if (pthread_mutex_init_recursive(&(*config)->mutex) != 0) {
|
||||
bfree(*config);
|
||||
return CONFIG_ERROR;
|
||||
}
|
||||
@ -330,7 +320,7 @@ int config_open_string(config_t **config, const char *str)
|
||||
if (!*config)
|
||||
return CONFIG_ERROR;
|
||||
|
||||
if (!init_mutex(*config)) {
|
||||
if (pthread_mutex_init_recursive(&(*config)->mutex) != 0) {
|
||||
bfree(*config);
|
||||
return CONFIG_ERROR;
|
||||
}
|
||||
|
@ -825,6 +825,8 @@ void profiler_free(void)
|
||||
}
|
||||
|
||||
da_free(old_root_entries);
|
||||
|
||||
pthread_mutex_destroy(&root_mutex);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
@ -858,6 +860,9 @@ void profiler_name_store_free(profiler_name_store_t *store)
|
||||
bfree(store->names.array[i]);
|
||||
|
||||
da_free(store->names);
|
||||
|
||||
pthread_mutex_destroy(&store->mutex);
|
||||
|
||||
bfree(store);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user