Changeset 106 for pjproject/trunk/pjsip/src/pjsip/sip_transport.c
- Timestamp:
- Dec 30, 2005 11:50:15 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transport.c
r105 r106 44 44 pjsip_endpoint *endpt; 45 45 pjsip_tpfactory factory_list; 46 #if defined(PJ_DEBUG) && PJ_DEBUG!=0 47 pj_atomic_t *tdata_counter; 48 #endif 46 49 void (*msg_cb)(pjsip_endpoint*, pj_status_t, pjsip_rx_data*); 47 50 }; … … 205 208 pj_ioqueue_op_key_init(&tdata->op_key.key, sizeof(tdata->op_key)); 206 209 210 #if defined(PJ_DEBUG) && PJ_DEBUG!=0 211 pj_atomic_inc( tdata->mgr->tdata_counter ); 212 #endif 213 207 214 *p_tdata = tdata; 208 215 return PJ_SUCCESS; … … 222 229 * reaches zero. 223 230 */ 224 PJ_DEF( void) pjsip_tx_data_dec_ref( pjsip_tx_data *tdata )231 PJ_DEF(pj_status_t) pjsip_tx_data_dec_ref( pjsip_tx_data *tdata ) 225 232 { 226 233 pj_assert( pj_atomic_get(tdata->ref_cnt) > 0); 227 234 if (pj_atomic_dec_and_get(tdata->ref_cnt) <= 0) { 228 235 PJ_LOG(5,(tdata->obj_name, "destroying txdata")); 236 #if defined(PJ_DEBUG) && PJ_DEBUG!=0 237 pj_atomic_dec( tdata->mgr->tdata_counter ); 238 #endif 229 239 pj_atomic_destroy( tdata->ref_cnt ); 230 240 pj_lock_destroy( tdata->lock ); 231 241 pjsip_endpt_destroy_pool( tdata->mgr->endpt, tdata->pool ); 242 return PJSIP_EBUFDESTROYED; 243 } else { 244 return PJ_SUCCESS; 232 245 } 233 246 } … … 453 466 * Unregister timer, if any. 454 467 */ 455 pj_assert(tp->idle_timer.id == PJ_FALSE);468 //pj_assert(tp->idle_timer.id == PJ_FALSE); 456 469 if (tp->idle_timer.id != PJ_FALSE) { 457 470 pjsip_endpt_cancel_timer(mgr->endpt, &tp->idle_timer); … … 567 580 return status; 568 581 582 #if defined(PJ_DEBUG) && PJ_DEBUG!=0 583 status = pj_atomic_create(pool, 0, &mgr->tdata_counter); 584 if (status != PJ_SUCCESS) 585 return status; 586 #endif 587 569 588 *p_mgr = mgr; 570 589 return PJ_SUCCESS; … … 582 601 583 602 PJ_LOG(5, (THIS_FILE, "pjsip_tpmgr_destroy()")); 603 604 #if defined(PJ_DEBUG) && PJ_DEBUG!=0 605 pj_assert(pj_atomic_get(mgr->tdata_counter) == 0); 606 #endif 584 607 585 608 pj_lock_acquire(mgr->lock); … … 601 624 602 625 pj_lock_release(mgr->lock); 626 pj_lock_destroy(mgr->lock); 603 627 604 628 return PJ_SUCCESS; … … 742 766 743 767 /* 744 * pjsip_tpmgr_a lloc_transport()768 * pjsip_tpmgr_acquire_transport() 745 769 * 746 770 * Get transport suitable to communicate to remote. Create a new one 747 771 * if necessary. 748 772 */ 749 PJ_DEF(pj_status_t) pjsip_tpmgr_a lloc_transport(pjsip_tpmgr *mgr,750 pjsip_transport_type_e type,751 const pj_sockaddr_t *remote,752 int addr_len,753 pjsip_transport **p_transport)773 PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport(pjsip_tpmgr *mgr, 774 pjsip_transport_type_e type, 775 const pj_sockaddr_t *remote, 776 int addr_len, 777 pjsip_transport **tp) 754 778 { 755 779 struct transport_key … … 799 823 pjsip_transport_add_ref(transport); 800 824 pj_lock_release(mgr->lock); 801 * p_transport= transport;825 *tp = transport; 802 826 return PJ_SUCCESS; 803 827 } … … 822 846 /* Request factory to create transport. */ 823 847 status = factory->create_transport(factory, mgr, mgr->endpt, 824 remote, p_transport); 825 848 remote, addr_len, tp); 849 if (status == PJ_SUCCESS) { 850 PJ_ASSERT_ON_FAIL(tp!=NULL, 851 {pj_lock_release(mgr->lock); return PJ_EBUG;}); 852 pjsip_transport_add_ref(*tp); 853 } 826 854 pj_lock_release(mgr->lock); 827 855 return status;
Note: See TracChangeset
for help on using the changeset viewer.