diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-08-10 21:44:26 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-08-10 21:44:26 +0000 |
commit | d09368727007e87aaf50271297bfc1ce0d1a47a7 (patch) | |
tree | 5b719f1504b5b72f589e62d0c0a22ef3de04be04 /pjsip/include | |
parent | caad58f9b7daf65180a0614ba00d9d6145d7a007 (diff) |
Attempt to fix the race condition in dialog locking.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@671 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/include')
-rw-r--r-- | pjsip/include/pjsip/sip_dialog.h | 2 | ||||
-rw-r--r-- | pjsip/include/pjsip/sip_ua_layer.h | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/pjsip/include/pjsip/sip_dialog.h b/pjsip/include/pjsip/sip_dialog.h index 123209be..191196a5 100644 --- a/pjsip/include/pjsip/sip_dialog.h +++ b/pjsip/include/pjsip/sip_dialog.h @@ -108,7 +108,7 @@ struct pjsip_dialog /* Dialog's system properties. */ char obj_name[PJ_MAX_OBJ_NAME]; /**< Standard id. */ pj_pool_t *pool; /**< Dialog's pool. */ - pj_mutex_t *mutex; /**< Dialog's mutex. Do not call!! + pj_mutex_t *mutex_; /**< Dialog's mutex. Do not call!! Use pjsip_dlg_inc_lock() instead! */ pjsip_user_agent *ua; /**< User agent instance. */ pjsip_endpoint *endpt; /**< Endpoint instance. */ diff --git a/pjsip/include/pjsip/sip_ua_layer.h b/pjsip/include/pjsip/sip_ua_layer.h index ca6db080..08e692ca 100644 --- a/pjsip/include/pjsip/sip_ua_layer.h +++ b/pjsip/include/pjsip/sip_ua_layer.h @@ -79,6 +79,25 @@ PJ_DECL(pj_status_t) pjsip_ua_init_module(pjsip_endpoint *endpt, */ PJ_DECL(pjsip_user_agent*) pjsip_ua_instance(void); + +/** + * Lock the dialog's hash table. This function is normally called by + * dialog code only. + * + * @return PJ_SUCCESS on success or the appropriate error code. + */ +PJ_DECL(pj_status_t) pjsip_ua_lock_dlg_table(void); + + +/** + * Unlock the dialog's hash table. This function is normally called by + * dialog code only. + * + * @return PJ_SUCCESS on success or the appropriate error code. + */ +PJ_DECL(pj_status_t) pjsip_ua_unlock_dlg_table(void); + + /** * Destroy the user agent layer. * |