[vlc-devel] commit: Remove uninitialized and unsynchronized global stats ( Rémi Denis-Courmont )
git version control
git at videolan.org
Sat Feb 28 18:47:09 CET 2009
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Feb 28 19:16:29 2009 +0200| [3d729748de26d33885557c31488f12b3f842ae36] | committer: Rémi Denis-Courmont
Remove uninitialized and unsynchronized global stats
This could crash the input thread(s).
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3d729748de26d33885557c31488f12b3f842ae36
---
include/vlc_main.h | 3 ---
src/input/input.c | 24 ------------------------
src/libvlc.c | 12 ------------
src/libvlc.h | 3 ---
4 files changed, 0 insertions(+), 42 deletions(-)
diff --git a/include/vlc_main.h b/include/vlc_main.h
index 119b177..0d2ce47 100644
--- a/include/vlc_main.h
+++ b/include/vlc_main.h
@@ -37,9 +37,6 @@ struct libvlc_int_t
{
VLC_COMMON_MEMBERS
- /* FIXME: this is only used by the logger module! */
- global_stats_t *p_stats; ///< Global statistics
-
/* Structure storing the action name / key associations */
struct hotkey
{
diff --git a/src/input/input.c b/src/input/input.c
index cb9e6de..7d05ae2 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -149,17 +149,6 @@ static input_thread_t *Create( vlc_object_t *p_parent, input_item_t *p_item,
if( !p_input->p )
return NULL;
- /* One "randomly" selected input thread is responsible for computing
- * the global stats. Check if there is already someone doing this */
- if( p_input->p_libvlc->p_stats && !b_quick )
- {
- libvlc_priv_t *p_private = libvlc_priv( p_input->p_libvlc );
- vlc_mutex_lock( &p_input->p_libvlc->p_stats->lock );
- if( p_private->p_stats_computer == NULL )
- p_private->p_stats_computer = p_input;
- vlc_mutex_unlock( &p_input->p_libvlc->p_stats->lock );
- }
-
p_input->b_preparsing = b_quick;
p_input->psz_header = psz_header ? strdup( psz_header ) : NULL;
@@ -700,12 +689,6 @@ static void MainLoopInterface( input_thread_t *p_input )
static void MainLoopStatistic( input_thread_t *p_input )
{
stats_ComputeInputStats( p_input, p_input->p->p_item->p_stats );
- /* Are we the thread responsible for computing global stats ? */
- if( libvlc_priv( p_input->p_libvlc )->p_stats_computer == p_input )
- {
- stats_ComputeGlobalStats( p_input->p_libvlc,
- p_input->p_libvlc->p_stats );
- }
input_SendEventStatistics( p_input );
}
@@ -1324,13 +1307,6 @@ static void End( input_thread_t * p_input )
/* make sure we are up to date */
stats_ComputeInputStats( p_input, p_input->p->p_item->p_stats );
- if( p_private->p_stats_computer == p_input )
- {
- stats_ComputeGlobalStats( p_input->p_libvlc,
- p_input->p_libvlc->p_stats );
- /* FIXME how can it be thread safe ? */
- p_private->p_stats_computer = NULL;
- }
CL_CO( read_bytes );
CL_CO( read_packets );
CL_CO( demux_read );
diff --git a/src/libvlc.c b/src/libvlc.c
index fb7aa52..1d1d71d 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -791,16 +791,6 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
priv->i_timers = 0;
priv->pp_timers = NULL;
- /* Init stats */
- p_libvlc->p_stats = (global_stats_t *)malloc( sizeof( global_stats_t ) );
- if( !p_libvlc->p_stats )
- {
- vlc_object_release( p_libvlc );
- return VLC_ENOMEM; /* FIXME: leaks */
- }
- vlc_mutex_init( &p_libvlc->p_stats->lock );
- priv->p_stats_computer = NULL;
-
priv->i_last_input_id = 0; /* Not very safe, should be removed */
/*
@@ -1080,8 +1070,6 @@ void libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
stats_TimersCleanAll( p_libvlc );
msg_Dbg( p_libvlc, "removing stats" );
- vlc_mutex_destroy( &p_libvlc->p_stats->lock );
- FREENULL( p_libvlc->p_stats );
#ifndef WIN32
char* psz_pidfile = NULL;
diff --git a/src/libvlc.h b/src/libvlc.h
index 20eea3a..bf5094d 100644
--- a/src/libvlc.h
+++ b/src/libvlc.h
@@ -217,9 +217,6 @@ typedef struct libvlc_priv_t
int i_timers; ///< Number of timers
bool b_stats; ///< Whether to collect stats
- void *p_stats_computer; ///< Input thread computing stats
- /// (needs cleanup)
-
/* Singleton objects */
module_t *p_memcpy_module; ///< Fast memcpy plugin used
playlist_t *p_playlist; //< the playlist singleton
More information about the vlc-devel
mailing list