Exemple #1
0
static void control_dtor(void *obj)
{
	struct stasis_app_control *control = obj;

	ao2_cleanup(control->command_queue);

	ast_channel_cleanup(control->channel);
	ao2_cleanup(control->app);

	ast_cond_destroy(&control->wait_cond);
	AST_LIST_HEAD_DESTROY(&control->add_rules);
	AST_LIST_HEAD_DESTROY(&control->remove_rules);
}
Exemple #2
0
static void control_dtor(void *obj)
{
    struct stasis_app_control *control = obj;

    AST_LIST_HEAD_DESTROY(&control->add_rules);
    AST_LIST_HEAD_DESTROY(&control->remove_rules);

    /* We may have a lingering silence generator; free it */
    ast_channel_stop_silence_generator(control->channel, control->silgen);
    control->silgen = NULL;

    ao2_cleanup(control->command_queue);
    ast_cond_destroy(&control->wait_cond);
}
static void dialed_interface_destroy(void *data)
{
	struct ast_dialed_interface *di = NULL;
	AST_LIST_HEAD(, ast_dialed_interface) *dialed_interface_list = data;
	
	if (!dialed_interface_list) {
		return;
	}

	AST_LIST_LOCK(dialed_interface_list);
	while ((di = AST_LIST_REMOVE_HEAD(dialed_interface_list, list)))
		ast_free(di);
	AST_LIST_UNLOCK(dialed_interface_list);

	AST_LIST_HEAD_DESTROY(dialed_interface_list);
	ast_free(dialed_interface_list);
}
Exemple #4
0
/*! \brief Destructor for hdr_list */
static void hdr_list_destroy(void *obj)
{
	AST_LIST_HEAD_DESTROY((struct hdr_list *) obj);
}