]> git.sesse.net Git - vlc/commitdiff
Add some locking.
authorAntoine Cellerier <dionoea@videolan.org>
Sat, 6 Feb 2010 15:49:27 +0000 (16:49 +0100)
committerAntoine Cellerier <dionoea@videolan.org>
Sat, 6 Feb 2010 15:49:27 +0000 (16:49 +0100)
src/input/vlm.c
src/input/vlmshell.c

index 18017f4f39fcba1ce23c4897b733e37231b3bd1e..46e01fbc90d4bb34e413adffcedc17e1a90b844c 100644 (file)
@@ -106,7 +106,9 @@ static int InputEvent( vlc_object_t *p_this, char const *psz_cmd,
         }
         vlm_SendEventMediaInstanceState( p_vlm, p_media->cfg.id, p_media->cfg.psz_name, psz_instance_name, var_GetInteger( p_input, "state" ) );
 
+        vlc_mutex_lock( &p_vlm->lock_manage );
         vlc_cond_signal( &p_vlm->wait_manage );
+        vlc_mutex_unlock( &p_vlm->lock_manage );
     }
     return VLC_SUCCESS;
 }
@@ -216,7 +218,9 @@ static void vlm_Destructor( vlm_t *p_vlm )
     vlm_ControlInternal( p_vlm, VLM_CLEAR_SCHEDULES );
     TAB_CLEAN( p_vlm->schedule, p_vlm->schedule );
 
+    vlc_mutex_lock( &p_vlm->lock_manage );
     vlc_cond_signal( &p_vlm->wait_manage );
+    vlc_mutex_unlock( &p_vlm->lock_manage );
 
     libvlc_priv(p_vlm->p_libvlc)->p_vlm = NULL;
     vlc_object_kill( p_vlm );
index c9fe99cc82df0c9060f11d5389794154b031bbee..16ce1e3362c39889a07ced8bc4fa28bb771ed735 100644 (file)
@@ -995,7 +995,9 @@ static vlm_schedule_sys_t *vlm_ScheduleNew( vlm_t *vlm, const char *psz_name )
 
     TAB_APPEND( vlm->i_schedule, vlm->schedule, p_sched );
 
+    vlc_mutex_lock( &vlm->lock_manage );
     vlc_cond_signal( &vlm->wait_manage );
+    vlc_mutex_unlock( &vlm->lock_manage );
 
     return p_sched;
 }