From ce6b727c2c0f3258e19d0f1586bf2d339db899f2 Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Fri, 28 Oct 2005 16:33:09 +0000
Subject: [PATCH] add macros for explicit module usecount increment/decrement
 remove unnecessary locking around setting usecount to zero

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6876 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 include/asterisk/module.h | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/include/asterisk/module.h b/include/asterisk/module.h
index 52233886a2..afb90ce246 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
-- 
GitLab