Commit 353ece46 authored by Clément Stenac's avatar Clément Stenac

Convert hotkeys to using cond_wait/cond_signal

This removes useless wakeups and improves hotkeys reactivity
parent a06213d7
...@@ -170,7 +170,7 @@ static void Run( intf_thread_t *p_intf ) ...@@ -170,7 +170,7 @@ static void Run( intf_thread_t *p_intf )
int i_times = 0; int i_times = 0;
/* Sleep a bit */ /* Sleep a bit */
msleep( INTF_IDLE_SLEEP ); // msleep( INTF_IDLE_SLEEP );
/* Update the input */ /* Update the input */
if( p_intf->p_sys->p_input == NULL ) if( p_intf->p_sys->p_input == NULL )
...@@ -228,8 +228,11 @@ static void Run( intf_thread_t *p_intf ) ...@@ -228,8 +228,11 @@ static void Run( intf_thread_t *p_intf )
if( !i_action ) if( !i_action )
{ {
vlc_mutex_lock( &p_intf->object_lock );
vlc_cond_wait( &p_intf->object_wait, &p_intf->object_lock );
vlc_mutex_unlock( &p_intf->object_lock );
/* No key pressed, sleep a bit more */ /* No key pressed, sleep a bit more */
msleep( INTF_IDLE_SLEEP ); // msleep( INTF_IDLE_SLEEP );
continue; continue;
} }
...@@ -746,6 +749,9 @@ static int KeyEvent( vlc_object_t *p_this, char const *psz_var, ...@@ -746,6 +749,9 @@ static int KeyEvent( vlc_object_t *p_this, char const *psz_var,
p_intf->p_sys->p_keys[ p_intf->p_sys->i_size ] = newval.i_int; p_intf->p_sys->p_keys[ p_intf->p_sys->i_size ] = newval.i_int;
p_intf->p_sys->i_size++; p_intf->p_sys->i_size++;
} }
vlc_mutex_lock( &p_intf->object_lock );
vlc_cond_signal( &p_intf->object_wait );
vlc_mutex_unlock( &p_intf->object_lock );
vlc_mutex_unlock( &p_intf->p_sys->change_lock ); vlc_mutex_unlock( &p_intf->p_sys->change_lock );
return VLC_SUCCESS; return VLC_SUCCESS;
......
...@@ -261,8 +261,11 @@ void intf_StopThread( intf_thread_t *p_intf ) ...@@ -261,8 +261,11 @@ void intf_StopThread( intf_thread_t *p_intf )
{ {
p_intf->b_die = VLC_TRUE; p_intf->b_die = VLC_TRUE;
if( p_intf->pf_run ) if( p_intf->pf_run )
{
vlc_cond_signal( &p_intf->object_wait );
vlc_thread_join( p_intf ); vlc_thread_join( p_intf );
} }
}
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment