]> granicus.if.org Git - postgresql/commitdiff
Declare lwlock.c's LWLockAcquireCommon() as a static inline.
authorAndres Freund <andres@anarazel.de>
Sun, 31 Aug 2014 22:17:18 +0000 (00:17 +0200)
committerAndres Freund <andres@anarazel.de>
Sun, 31 Aug 2014 22:17:18 +0000 (00:17 +0200)
68a2e52bbaf98f136 has introduced LWLockAcquireCommon() containing the
previous contents of LWLockAcquire() plus added functionality. The
latter then calls it, just like LWLockAcquireWithVar(). Because the
majority of callers don't need the added functionality, declare the
common code as inline. The compiler then can optimize away the unused
code. Doing so is also useful when looking at profiles, to
differentiate the users.

Backpatch to 9.4, the first branch to contain LWLockAcquireCommon().

src/backend/storage/lmgr/lwlock.c

index d23ac62bf8489264e193cbc6c8ec4b4198d9b795..5453549a792a2e4bd53cf207a6010d279ea1224b 100644 (file)
@@ -85,8 +85,8 @@ static LWLock *held_lwlocks[MAX_SIMUL_LWLOCKS];
 static int     lock_addin_request = 0;
 static bool lock_addin_request_allowed = true;
 
-static bool LWLockAcquireCommon(LWLock *l, LWLockMode mode, uint64 *valptr,
-                                       uint64 val);
+static inline bool LWLockAcquireCommon(LWLock *l, LWLockMode mode,
+                                       uint64 *valptr, uint64 val);
 
 #ifdef LWLOCK_STATS
 typedef struct lwlock_stats_key
@@ -478,7 +478,7 @@ LWLockAcquireWithVar(LWLock *l, uint64 *valptr, uint64 val)
 }
 
 /* internal function to implement LWLockAcquire and LWLockAcquireWithVar */
-static bool
+static inline bool
 LWLockAcquireCommon(LWLock *l, LWLockMode mode, uint64 *valptr, uint64 val)
 {
        volatile LWLock *lock = l;