static void InteractionSearchInterface( interaction_t * );
static void InteractionLoop( vlc_object_t * );
static void InteractionManage( interaction_t * );
-static void interaction_Destructor( vlc_object_t *p_interaction );
static interaction_dialog_t *DialogGetById( interaction_t* , int );
static void DialogDestroy( interaction_dialog_t * );
}
}
- vlc_object_set_destructor( p_interaction, interaction_Destructor );
-
return VLC_OBJECT( p_interaction );
}
-static void interaction_Destructor( vlc_object_t *p_interaction )
-{
- vlc_thread_join( p_interaction );
-}
-
/**********************************************************************
* The following functions are local
**********************************************************************/
p_priv->i_refcount = 1;
p_priv->pf_destructor = kVLCDestructor;
+ p_priv->b_thread = VLC_FALSE;
p_new->p_parent = NULL;
p_new->pp_children = NULL;
p_new->i_children = 0;
/* Send a kill to the object's thread if applicable */
vlc_object_kill( p_this );
+ /* If we are running on a thread, wait until it ends */
+ if( p_priv->b_thread )
+ vlc_thread_join( p_this );
+
/* Call the custom "subclass" destructor */
if( p_priv->pf_destructor )
p_priv->pf_destructor( p_this );