MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / wait_handler

Function wait_handler

modules/tm/timer.c:457–486  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

455
456
457inline static void wait_handler( struct timer_link *wait_tl )
458{
459 struct cell *p_cell;
460
461 p_cell = get_wait_timer_payload( wait_tl );
462#ifdef EXTRA_DEBUG
463 if (p_cell->damocles) {
464 LM_ERR("transaction %p scheduled for deletion and"
465 " called from WAIT timer\n",p_cell);
466 abort();
467 }
468 LM_DBG("WAIT timer hit\n");
469#endif
470
471 /* stop cancel timers if any running */
472 if ( is_invite(p_cell) ) cleanup_localcancel_timers( p_cell );
473
474 /* the transaction is already removed from WT_LIST by the timer */
475 /* remove the cell from the hash table */
476 LM_DBG("removing %p from table \n", p_cell );
477 LOCK_HASH( p_cell->hash_index );
478 remove_from_hash_table_unsafe( p_cell );
479 /* jku: no more here -- we do it when we put a transaction on wait */
480#ifdef EXTRA_DEBUG
481 p_cell->damocles = 1;
482#endif
483 /* delete (returns with UNLOCK-ed_HASH) */
484 delete_cell( p_cell, 1 /* unlock on return */ );
485 LM_DBG("done\n");
486}
487
488
489

Callers

nothing calls this directly

Calls 3

delete_cellFunction · 0.85

Tested by

no test coverage detected