@ -13670,7 +13670,8 @@ static char *sip_prune_realtime(struct ast_cli_entry *e, int cmd, struct ast_cli
unref_peer ( pi , " toss iterator peer ptr " ) ;
}
if ( pruned ) {
ao2_t_callback ( peers , OBJ_NODATA | OBJ_UNLINK , peer_is_marked , 0 , " initiating callback to remove marked peers " ) ;
ao2_t_callback ( peers , OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE , peer_is_marked , 0 ,
" initiating callback to remove marked peers " ) ;
ast_cli ( a - > fd , " %d peers pruned. \n " , pruned ) ;
} else
ast_cli ( a - > fd , " No peers found to prune. \n " ) ;
@ -20613,7 +20614,8 @@ static void *do_monitor(void *data)
of time since the last time we did it ( when MWI is being sent , we can
get back to this point every millisecond or less )
*/
ao2_t_callback ( dialogs , OBJ_UNLINK | OBJ_NODATA , dialog_needdestroy , & t , " callback to remove dialogs w/needdestroy " ) ;
ao2_t_callback ( dialogs , OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE , dialog_needdestroy , & t ,
" callback to remove dialogs w/needdestroy " ) ;
/* the old methodology would be to restart the search for dialogs to delete with every
dialog that was found and destroyed , probably because the list contents would change ,
@ -23650,7 +23652,8 @@ static int sip_do_reload(enum channelreloadreason reason)
start_poke = time ( 0 ) ;
/* Prune peers who still are supposed to be deleted */
ao2_t_callback ( peers , OBJ_NODATA | OBJ_UNLINK , peer_is_marked , 0 , " callback to remove marked peers " ) ;
ao2_t_callback ( peers , OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE , peer_is_marked , 0 ,
" callback to remove marked peers " ) ;
ast_debug ( 4 , " --------------- Done destroying pruned peers \n " ) ;