Optimization suggested by Russell to cache the value of pthread_self() so
authorMark Michelson <mmichelson@digium.com>
Fri, 27 Jun 2008 16:23:32 +0000 (16:23 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 27 Jun 2008 16:23:32 +0000 (16:23 +0000)
that it isn't evaluated every time through the loop.

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

include/asterisk/lock.h

index 56f7b03..92299f3 100644 (file)
@@ -1051,8 +1051,9 @@ static inline int _ast_rwlock_unlock(ast_rwlock_t *t, const char *name,
        if (lt->reentrancy) {
                int lock_found = 0;
                int i;
+               pthread_t self = pthread_self();
                for (i = lt->reentrancy-1; i >= 0; --i) {
-                       if (lt->thread[i] == pthread_self()) {
+                       if (lt->thread[i] == self) {
                                lock_found = 1;
                                if (i != lt->reentrancy-1) {
                                        lt->file[i] = lt->file[lt->reentrancy-1];