Changeset e21ba63b8a25191bb68d2a6d075763a3d65371ff

Show
Ignore:
Timestamp:
06/17/08 21:33:26 (2 months ago)
Author:
Rémi Denis-Courmont <rdenis@simphalempin.com>
git-committer:
Rémi Denis-Courmont <rdenis@simphalempin.com> 1213731206 +0300
git-parent:

[838cee473b8ab2c2ed36f7c73c15ab2966329116]

git-author:
Rémi Denis-Courmont <rdenis@simphalempin.com> 1213731206 +0300
Message:

Move object lock and condition into the internals

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • include/vlc_common.h

    rb501c2e re21ba63  
    514514    int  i_flags;                                                           \ 
    515515                                                                            \ 
    516     /* Object access lock */                                                \ 
    517     vlc_mutex_t  object_lock;                                               \ 
    518     vlc_cond_t   object_wait;                                               \ 
    519                                                                             \ 
    520516    /* Object properties */                                                 \ 
    521517    volatile bool b_error;                  /**< set by the object */ \ 
  • include/vlc_plugin.h

    re9deaa7 re21ba63  
    3535 * Current plugin ABI version 
    3636 */ 
    37 # define MODULE_SYMBOL 0_9_0k 
    38 # define MODULE_SUFFIX "__0_9_0k
     37# define MODULE_SYMBOL 0_9_0l 
     38# define MODULE_SUFFIX "__0_9_0l
    3939 
    4040/***************************************************************************** 
  • src/libvlc.h

    ra3e989d re21ba63  
    143143                   const char *psz_type); 
    144144 
    145 /* Signal an object without checking for locking consistency. This is wrong. */ 
    146 #ifdef __GNUC__ 
    147 __attribute__((deprecated)) 
    148 #endif 
    149 static inline void 
    150 vlc_object_signal_maybe (vlc_object_t *p_this) 
    151 { 
    152     vlc_cond_signal (&p_this->object_wait); 
    153 } 
    154  
    155145/** 
    156146 * libvlc_global_data_t (global variable) 
     
    190180 
    191181    /* Objects thread synchronization */ 
     182    vlc_mutex_t     lock; 
     183    vlc_cond_t      wait; 
    192184    int             pipes[2]; 
    193185    vlc_spinlock_t  spin; 
     
    214206 
    215207#define vlc_internals( obj ) (((vlc_object_internals_t*)(VLC_OBJECT(obj)))-1) 
     208 
     209/* Signal an object without checking for locking consistency. This is wrong. */ 
     210#ifdef __GNUC__ 
     211__attribute__((deprecated)) 
     212#endif 
     213static inline void 
     214vlc_object_signal_maybe (vlc_object_t *p_this) 
     215{ 
     216    vlc_cond_signal (&(vlc_internals(p_this)->wait)); 
     217} 
    216218 
    217219/** 
  • src/misc/objects.c

    r7e413aa re21ba63  
    177177 
    178178    /* Initialize mutexes and condvars */ 
    179     vlc_mutex_init( &p_new->object_lock ); 
    180     vlc_cond_init( p_new, &p_new->object_wait ); 
     179    vlc_mutex_init( &p_priv->lock ); 
     180    vlc_cond_init( p_new, &p_priv->wait ); 
    181181    vlc_mutex_init( &p_priv->var_lock ); 
    182182    vlc_spin_init( &p_priv->spin ); 
     
    388388 
    389389    vlc_spin_destroy( &p_priv->ref_spin ); 
    390     vlc_mutex_destroy( &p_this->object_lock ); 
    391     vlc_cond_destroy( &p_this->object_wait ); 
     390    vlc_mutex_destroy( &p_priv->lock ); 
     391    vlc_cond_destroy( &p_priv->wait ); 
    392392    vlc_spin_destroy( &p_priv->spin ); 
    393393    if( p_priv->pipes[1] != -1 ) 
     
    404404void __vlc_object_lock( vlc_object_t *obj ) 
    405405{ 
    406     vlc_mutex_lock( &obj->object_lock ); 
     406    vlc_mutex_lock( &(vlc_internals(obj)->lock) ); 
    407407} 
    408408 
    409409void __vlc_object_unlock( vlc_object_t *obj ) 
    410410{ 
    411     vlc_assert_locked( &obj->object_lock ); 
    412     vlc_mutex_unlock( &obj->object_lock ); 
     411    vlc_assert_locked( &(vlc_internals(obj)->lock) ); 
     412    vlc_mutex_unlock( &(vlc_internals(obj)->lock) ); 
    413413} 
    414414 
     
    541541void __vlc_object_wait( vlc_object_t *obj ) 
    542542{ 
    543     vlc_assert_locked( &obj->object_lock ); 
    544     vlc_cond_wait( &obj->object_wait, &obj->object_lock ); 
     543    vlc_object_internals_t *priv = vlc_internals( obj ); 
     544    vlc_assert_locked( &priv->lock); 
     545    vlc_cond_wait( &priv->wait, &priv->lock ); 
    545546} 
    546547 
     
    555556int __vlc_object_timedwait( vlc_object_t *obj, mtime_t deadline ) 
    556557{ 
    557     vlc_assert_locked( &obj->object_lock ); 
    558     return vlc_cond_timedwait( &obj->object_wait, &obj->object_lock, deadline ); 
     558    vlc_object_internals_t *priv = vlc_internals( obj ); 
     559    vlc_assert_locked( &priv->lock); 
     560    return vlc_cond_timedwait( &priv->wait, &priv->lock, deadline ); 
    559561} 
    560562 
     
    584586bool __vlc_object_alive( vlc_object_t *obj ) 
    585587{ 
    586     vlc_assert_locked( &obj->object_lock ); 
     588    vlc_assert_locked( &(vlc_internals(obj)->lock) ); 
    587589    return !obj->b_die; 
    588590} 
     
    598600void __vlc_object_signal_unlocked( vlc_object_t *obj ) 
    599601{ 
    600     vlc_assert_locked (&obj->object_lock); 
    601     vlc_cond_signal( &obj->object_wait ); 
     602    vlc_assert_locked (&(vlc_internals(obj)->lock)); 
     603    vlc_cond_signal( &(vlc_internals(obj)->wait) ); 
    602604} 
    603605 
  • src/modules/cache.c

    rd666030 re21ba63  
    380380        p_module->p_config[i].b_dirty = false; 
    381381 
    382         p_module->p_config[i].p_lock = &p_module->object_lock
     382        p_module->p_config[i].p_lock = &(vlc_internals(p_module)->lock)
    383383 
    384384        if( p_module->p_config[i].i_list ) 
  • src/modules/entry.c

    r0b06fc5 re21ba63  
    221221    memset (tab + confsize, 0, sizeof (tab[confsize])); 
    222222    tab[confsize].i_type = type; 
    223     tab[confsize].p_lock = &module->object_lock
     223    tab[confsize].p_lock = &(vlc_internals(module)->lock)
    224224 
    225225    if (type & CONFIG_ITEM) 
  • src/playlist/engine.c

    r7e413aa re21ba63  
    226226void playlist_release_current_input( playlist_t * p_playlist ) 
    227227{ 
    228     vlc_assert_locked( &p_playlist->object_lock ); 
     228    vlc_assert_locked( &(vlc_internals(p_playlist)->lock) ); 
    229229 
    230230    if( !p_playlist->p_input ) return; 
     
    249249    playlist_t * p_playlist, input_thread_t * p_input ) 
    250250{ 
    251     vlc_assert_locked( &p_playlist->object_lock ); 
     251    vlc_assert_locked( &(vlc_internals(p_playlist)->lock) ); 
    252252 
    253253    playlist_release_current_input( p_playlist );