Add "destroy" implementation for spinlock.
authorGeorge Joseph <george.joseph@fairview5.com>
Tue, 29 Apr 2014 15:10:24 +0000 (15:10 +0000)
committerGeorge Joseph <george.joseph@fairview5.com>
Tue, 29 Apr 2014 15:10:24 +0000 (15:10 +0000)
The original commit for spinlock was missing "destroy" implementations.
Most of them are no-ops but phtread_spin and pthread_mutex do need their
locks destroyed.
........

Merged revisions 413102 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@413103 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/spinlock.h

index c514f03..dacb582 100644 (file)
@@ -95,6 +95,11 @@ static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock)
        __sync_lock_release(lock);
        return 0;
 }
+
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock)
+{
+       return 0;
+}
 #endif
 
 /*!
@@ -145,6 +150,11 @@ static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock)
        x86chgl(lock, 0);
        return 0;
 }
+
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock)
+{
+       return 0;
+}
 #endif
 
 /*!
@@ -221,6 +231,11 @@ static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock)
 
        return 0;
 }
+
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock)
+{
+       return 0;
+}
 #endif
 
 /*!
@@ -288,6 +303,11 @@ static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock)
 
        return 0;
 }
+
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock)
+{
+       return 0;
+}
 #endif
 
 /*!
@@ -322,6 +342,11 @@ static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock)
 {
        return pthread_spin_unlock(lock);
 }
+
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock)
+{
+       return pthread_spin_destroy(lock);
+}
 #endif
 
 /*!
@@ -361,6 +386,11 @@ static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock)
        OSSpinLockUnlock(lock);
        return 0;
 }
+
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock)
+{
+       return 0;
+}
 #endif
 
 /*!
@@ -396,6 +426,11 @@ static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock)
 {
        return pthread_mutex_unlock(lock);
 }
+
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock)
+{
+       return pthread_mutex_destroy(lock);
+}
 #endif
 
 #if !defined(AST_SPINLOCK_TYPE)
@@ -442,4 +477,12 @@ static force_inline int ast_spinlock_trylock(ast_spinlock_t *lock);
  */
 static force_inline int ast_spinlock_unlock(ast_spinlock_t *lock);
 
+/*!
+ * \brief Destroy a spin lock
+ * \param lock Address of the lock
+ * \retval 0 Success
+ * \retval other Failure
+ */
+static force_inline int ast_spinlock_destroy(ast_spinlock_t *lock);
+
 #endif /* _ASTERISK_SPINLOCK_H */