vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Nov 10 20:50:11 2012 +0200| [51a26d08767f28b2b5c75f8894195b313afe587b] | committer: Rémi Denis-Courmont
media library: remove non-sensical use of spin locks The code is complete and utter crap either way. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=51a26d08767f28b2b5c75f8894195b313afe587b --- include/vlc_media_library.h | 6 ------ modules/media_library/media_pool.c | 6 ------ src/misc/media_library.c | 4 ---- 3 files changed, 16 deletions(-) diff --git a/include/vlc_media_library.h b/include/vlc_media_library.h index e183529..d86f5fa 100644 --- a/include/vlc_media_library.h +++ b/include/vlc_media_library.h @@ -181,7 +181,6 @@ typedef struct ml_ftree_t ml_ftree_t; typedef struct ml_gc_object_t { - vlc_spinlock_t spin; bool pool; uintptr_t refs; void (*pf_destructor) (struct ml_gc_object_t *); @@ -514,9 +513,7 @@ static inline void ml_gc_incref( ml_media_t* p_media ) if( p_gc == NULL ) return; - vlc_spin_lock (&p_gc->spin); ++p_gc->refs; - vlc_spin_unlock (&p_gc->spin); } /** @@ -532,14 +529,11 @@ static inline void ml_gc_decref( ml_media_t* p_media ) if( p_gc == NULL ) return; - vlc_spin_lock (&p_gc->spin); refs = --p_gc->refs; pool = p_gc->pool; - vlc_spin_unlock (&p_gc->spin); if( refs == 0 && !pool ) { - vlc_spin_destroy (&p_gc->spin); p_gc->pf_destructor (p_gc); } } diff --git a/modules/media_library/media_pool.c b/modules/media_library/media_pool.c index 0e81320..b868d4d 100644 --- a/modules/media_library/media_pool.c +++ b/modules/media_library/media_pool.c @@ -66,7 +66,6 @@ int pool_InsertMedia( media_library_t* p_ml, ml_media_t* p_media, bool locked ) ml_LockMedia( p_media ); assert( p_media ); assert( p_media->i_id > 0 ); - vlc_spin_lock( &p_media->ml_gc_data.spin ); if( p_media->ml_gc_data.pool ) { msg_Dbg( p_ml, "Already in pool! %s %d", p_media->psz_uri, p_media->i_id ); @@ -74,7 +73,6 @@ int pool_InsertMedia( media_library_t* p_ml, ml_media_t* p_media, bool locked ) return VLC_EGENERIC; } p_media->ml_gc_data.pool = true; - vlc_spin_unlock( &p_media->ml_gc_data.spin ); int i_ret = VLC_SUCCESS; vlc_mutex_lock( &p_ml->p_sys->pool_mutex ); mp_foreachlist( p_ml->p_sys->p_mediapool[ (mediapool_hash(p_media->i_id)) ], p_item ) @@ -128,18 +126,14 @@ void pool_GC( media_library_t* p_ml ) { p_media = p_item->p_media; int refs; - vlc_spin_lock( &p_media->ml_gc_data.spin ); refs = p_media->ml_gc_data.refs; - vlc_spin_unlock( &p_media->ml_gc_data.spin ); if( refs == 1 ) { if( p_prev == NULL ) p_ml->p_sys->p_mediapool[i_idx] = p_item->p_next; else p_prev->p_next = p_item->p_next; - vlc_spin_lock( &p_media->ml_gc_data.spin ); p_media->ml_gc_data.pool = false; - vlc_spin_unlock( &p_media->ml_gc_data.spin ); ml_gc_decref( p_item->p_media );//This should destroy the object free( p_item ); } diff --git a/src/misc/media_library.c b/src/misc/media_library.c index d3517bc..05e9008 100644 --- a/src/misc/media_library.c +++ b/src/misc/media_library.c @@ -57,10 +57,6 @@ static void *ml_gc_init (ml_gc_object_t *p_gc, void (*pf_destruct) (ml_gc_object p_gc->pool = false; p_gc->refs = 1; - /* Nobody else can possibly lock the spin - it's there as a barrier */ - vlc_spin_init (&p_gc->spin); - vlc_spin_lock (&p_gc->spin); - vlc_spin_unlock (&p_gc->spin); return p_gc; } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
