diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-28 16:33:09 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-28 16:33:09 +0000 |
commit | 9f4683f23ff3818216e0d930d07d632f4a5f759b (patch) | |
tree | 095de8a05879228b639f0e414e7bb7cf17cba0b1 /include | |
parent | b6b8f11db8dea720e451225c408652cb9ea6d6e0 (diff) |
add macros for explicit module usecount increment/decrement
remove unnecessary locking around setting usecount to zero
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6876 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rwxr-xr-x | include/asterisk/module.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/include/asterisk/module.h b/include/asterisk/module.h index 52233886a..afb90ce24 100755 --- a/include/asterisk/module.h +++ b/include/asterisk/module.h @@ -290,6 +290,18 @@ void ast_unregister_atexit(void (*func)(void)); static struct localuser *localusers = NULL; \ static int localusecnt = 0; +#define STANDARD_INCREMENT_USECOUNT \ + ast_mutex_lock(&localuser_lock); \ + localusecnt++; \ + ast_mutex_unlock(&localuser_lock); \ + ast_update_use_count(); + +#define STANDARD_DECREMENT_USECOUNT \ + ast_mutex_lock(&localuser_lock); \ + localusecnt--; \ + ast_mutex_unlock(&localuser_lock); \ + ast_update_use_count(); + /*! * \brief Add a localuser. * \param u a pointer to a localuser struct @@ -375,16 +387,16 @@ void ast_unregister_atexit(void (*func)(void)); u = u->next; \ free(ul); \ } \ - ast_mutex_unlock(&localuser_lock); \ localusecnt=0; \ + ast_mutex_unlock(&localuser_lock); \ + ast_update_use_count(); \ } /*! * \brief Set the specfied integer to the current usecount. * \param res the integer variable to set. * - * This macro sets the specfied integer variable to the local usecount. It - * handles all the necessary thread synchronization. + * This macro sets the specfied integer variable to the local usecount. * * <b>Sample Usage:</b> * \code |