diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index 143b3900e..d75bec590 100644 --- a/libobs/obs-encoder.c +++ b/libobs/obs-encoder.c @@ -44,23 +44,17 @@ const char *obs_encoder_get_display_name(const char *id) static bool init_encoder(struct obs_encoder *encoder, const char *name, obs_data_t *settings, obs_data_t *hotkey_data) { - pthread_mutexattr_t attr; - pthread_mutex_init_value(&encoder->init_mutex); pthread_mutex_init_value(&encoder->callbacks_mutex); pthread_mutex_init_value(&encoder->outputs_mutex); pthread_mutex_init_value(&encoder->pause.mutex); - if (pthread_mutexattr_init(&attr) != 0) - return false; - if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) - return false; if (!obs_context_data_init(&encoder->context, OBS_OBJ_TYPE_ENCODER, settings, name, hotkey_data, false)) return false; - if (pthread_mutex_init(&encoder->init_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&encoder->init_mutex) != 0) return false; - if (pthread_mutex_init(&encoder->callbacks_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&encoder->callbacks_mutex) != 0) return false; if (pthread_mutex_init(&encoder->outputs_mutex, NULL) != 0) return false; diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index 862105f7e..404bfa9a7 100644 --- a/libobs/obs-scene.c +++ b/libobs/obs-scene.c @@ -84,7 +84,6 @@ static const char *group_getname(void *unused) static void *scene_create(obs_data_t *settings, struct obs_source *source) { - pthread_mutexattr_t attr; struct obs_scene *scene = bzalloc(sizeof(struct obs_scene)); scene->source = source; @@ -98,16 +97,12 @@ static void *scene_create(obs_data_t *settings, struct obs_source *source) signal_handler_add_array(obs_source_get_signal_handler(source), obs_scene_signals); - if (pthread_mutexattr_init(&attr) != 0) - goto fail; - if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) - goto fail; - if (pthread_mutex_init(&scene->audio_mutex, &attr) != 0) { + if (pthread_mutex_init_recursive(&scene->audio_mutex) != 0) { blog(LOG_ERROR, "scene_create: Couldn't initialize audio " "mutex"); goto fail; } - if (pthread_mutex_init(&scene->video_mutex, &attr) != 0) { + if (pthread_mutex_init_recursive(&scene->video_mutex) != 0) { blog(LOG_ERROR, "scene_create: Couldn't initialize video " "mutex"); goto fail; @@ -117,7 +112,6 @@ static void *scene_create(obs_data_t *settings, struct obs_source *source) return scene; fail: - pthread_mutexattr_destroy(&attr); bfree(scene); return NULL; } diff --git a/libobs/obs-source.c b/libobs/obs-source.c index c433b35c5..33efdc2ef 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -172,8 +172,6 @@ extern char *find_libobs_data_file(const char *file); /* internal initialization */ static bool obs_source_init(struct obs_source *source) { - pthread_mutexattr_t attr; - source->user_volume = 1.0f; source->volume = 1.0f; source->sync_offset = 0; @@ -186,11 +184,7 @@ static bool obs_source_init(struct obs_source *source) pthread_mutex_init_value(&source->audio_cb_mutex); pthread_mutex_init_value(&source->caption_cb_mutex); - if (pthread_mutexattr_init(&attr) != 0) - return false; - if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) - return false; - if (pthread_mutex_init(&source->filter_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&source->filter_mutex) != 0) return false; if (pthread_mutex_init(&source->audio_buf_mutex, NULL) != 0) return false; diff --git a/libobs/obs.c b/libobs/obs.c index dbecf0112..d62e729cf 100644 --- a/libobs/obs.c +++ b/libobs/obs.c @@ -386,7 +386,6 @@ static int obs_init_video(struct obs_video_info *ovi) { struct obs_core_video *video = &obs->video; struct video_output_info vi; - pthread_mutexattr_t attr; int errorcode; make_video_info(&vi, ovi); @@ -420,10 +419,6 @@ static int obs_init_video(struct obs_video_info *ovi) gs_leave_context(); - if (pthread_mutexattr_init(&attr) != 0) - return OBS_VIDEO_FAIL; - if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) - return OBS_VIDEO_FAIL; if (pthread_mutex_init(&video->gpu_encoder_mutex, NULL) < 0) return OBS_VIDEO_FAIL; if (pthread_mutex_init(&video->task_mutex, NULL) < 0) @@ -570,15 +565,9 @@ static bool obs_init_audio(struct audio_output_info *ai) struct obs_core_audio *audio = &obs->audio; int errorcode; - pthread_mutexattr_t attr; - pthread_mutex_init_value(&audio->monitoring_mutex); - if (pthread_mutexattr_init(&attr) != 0) - return false; - if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) - return false; - if (pthread_mutex_init(&audio->monitoring_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&audio->monitoring_mutex) != 0) return false; audio->user_volume = 1.0f; @@ -628,30 +617,25 @@ static void obs_free_audio(void) static bool obs_init_data(void) { struct obs_core_data *data = &obs->data; - pthread_mutexattr_t attr; assert(data != NULL); pthread_mutex_init_value(&obs->data.displays_mutex); pthread_mutex_init_value(&obs->data.draw_callbacks_mutex); - if (pthread_mutexattr_init(&attr) != 0) - return false; - if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) + if (pthread_mutex_init_recursive(&data->sources_mutex) != 0) goto fail; - if (pthread_mutex_init(&data->sources_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&data->audio_sources_mutex) != 0) goto fail; - if (pthread_mutex_init(&data->audio_sources_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&data->displays_mutex) != 0) goto fail; - if (pthread_mutex_init(&data->displays_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&data->outputs_mutex) != 0) goto fail; - if (pthread_mutex_init(&data->outputs_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&data->encoders_mutex) != 0) goto fail; - if (pthread_mutex_init(&data->encoders_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&data->services_mutex) != 0) goto fail; - if (pthread_mutex_init(&data->services_mutex, &attr) != 0) - goto fail; - if (pthread_mutex_init(&obs->data.draw_callbacks_mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&obs->data.draw_callbacks_mutex) != 0) goto fail; if (!obs_view_init(&data->main_view)) goto fail; @@ -660,7 +644,6 @@ static bool obs_init_data(void) data->valid = true; fail: - pthread_mutexattr_destroy(&attr); return data->valid; } @@ -764,7 +747,6 @@ static pthread_once_t obs_pthread_once_init_token = PTHREAD_ONCE_INIT; static inline bool obs_init_hotkeys(void) { struct obs_core_hotkeys *hotkeys = &obs->hotkeys; - pthread_mutexattr_t attr; bool success = false; assert(hotkeys != NULL); @@ -782,11 +764,7 @@ static inline bool obs_init_hotkeys(void) if (!obs_hotkeys_platform_init(hotkeys)) return false; - if (pthread_mutexattr_init(&attr) != 0) - return false; - if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) - goto fail; - if (pthread_mutex_init(&hotkeys->mutex, &attr) != 0) + if (pthread_mutex_init_recursive(&hotkeys->mutex) != 0) goto fail; if (os_event_init(&hotkeys->stop_event, OS_EVENT_TYPE_MANUAL) != 0) @@ -800,7 +778,6 @@ static inline bool obs_init_hotkeys(void) success = true; fail: - pthread_mutexattr_destroy(&attr); return success; }