Selaa lähdekoodia

libobs: Make filter mutex recursive

jp9000 10 vuotta sitten
vanhempi
sitoutus
cd7d045ff3
1 muutettua tiedostoa jossa 7 lisäystä ja 1 poistoa
  1. 7 1
      libobs/obs-source.c

+ 7 - 1
libobs/obs-source.c

@@ -111,6 +111,8 @@ const char *obs_source_get_display_name(enum obs_source_type type,
 bool obs_source_init(struct obs_source *source,
 		const struct obs_source_info *info)
 {
+	pthread_mutexattr_t attr;
+
 	source->refs = 1;
 	source->user_volume = 1.0f;
 	source->present_volume = 1.0f;
@@ -120,7 +122,11 @@ bool obs_source_init(struct obs_source *source,
 	pthread_mutex_init_value(&source->async_mutex);
 	pthread_mutex_init_value(&source->audio_mutex);
 
-	if (pthread_mutex_init(&source->filter_mutex, NULL) != 0)
+	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)
 		return false;
 	if (pthread_mutex_init(&source->audio_mutex, NULL) != 0)
 		return false;