Changeset 4992 for pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
- Timestamp:
- Mar 6, 2015 6:09:22 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
r4964 r4992 1008 1008 if (grp_lock) { 1009 1009 tsx->grp_lock = grp_lock; 1010 1011 pj_grp_lock_add_ref(tsx->grp_lock); 1012 pj_grp_lock_add_handler(tsx->grp_lock, tsx->pool, tsx, &tsx_on_destroy); 1010 1013 } else { 1011 status = pj_grp_lock_create(pool, NULL, &tsx->grp_lock); 1014 status = pj_grp_lock_create_w_handler(pool, NULL, tsx, &tsx_on_destroy, 1015 &tsx->grp_lock); 1012 1016 if (status != PJ_SUCCESS) { 1013 1017 pjsip_endpt_release_pool(mod_tsx_layer.endpt, pool); 1014 1018 return status; 1015 1019 } 1016 } 1017 1018 pj_grp_lock_add_ref(tsx->grp_lock); 1019 pj_grp_lock_add_handler(tsx->grp_lock, tsx->pool, tsx, &tsx_on_destroy); 1020 1021 pj_grp_lock_add_ref(tsx->grp_lock); 1022 } 1020 1023 1021 1024 status = pj_mutex_create_simple(pool, tsx->obj_name, &tsx->mutex_b); … … 1309 1312 1310 1313 1311 /* Lock transaction. */ 1312 pj_grp_lock_acquire(tsx->grp_lock); 1314 /* Lock transaction. 1315 * We don't need to lock the group lock if none was supplied, while the 1316 * newly created group lock has not been exposed. 1317 */ 1318 if (grp_lock) 1319 pj_grp_lock_acquire(tsx->grp_lock); 1313 1320 1314 1321 /* Role is UAC. */ … … 1376 1383 status = pjsip_get_request_dest(tdata, &dst_info); 1377 1384 if (status != PJ_SUCCESS) { 1378 pj_grp_lock_release(tsx->grp_lock); 1385 if (grp_lock) 1386 pj_grp_lock_release(tsx->grp_lock); 1379 1387 tsx_shutdown(tsx); 1380 1388 return status; … … 1388 1396 pj_assert(!"Bug in branch_param generator (i.e. not unique)"); 1389 1397 */ 1390 pj_grp_lock_release(tsx->grp_lock); 1398 if (grp_lock) 1399 pj_grp_lock_release(tsx->grp_lock); 1391 1400 tsx_shutdown(tsx); 1392 1401 return status; … … 1395 1404 1396 1405 /* Unlock transaction and return. */ 1397 pj_grp_lock_release(tsx->grp_lock); 1406 if (grp_lock) 1407 pj_grp_lock_release(tsx->grp_lock); 1398 1408 1399 1409 pj_log_push_indent();
Note: See TracChangeset
for help on using the changeset viewer.