The EVLOCK_LOCK and EVLOCK_UNLOCK macros already check to make sure
that the lock is present before messing with it, so there's no point
in checking the lock before calling them.
A good compiler should be able to simplify code like
if (lock) {
if (lock)
acquire(lock);
}
, but why count on it?
/** Internal: Grab the lock (if any) on a bufferevent */
#define BEV_LOCK(b) do { \
struct bufferevent_private *locking = BEV_UPCAST(b); \
- if (locking->lock) \
- EVLOCK_LOCK(locking->lock, 0); \
+ EVLOCK_LOCK(locking->lock, 0); \
} while (0)
/** Internal: Release the lock (if any) on a bufferevent */
#define BEV_UNLOCK(b) do { \
struct bufferevent_private *locking = BEV_UPCAST(b); \
- if (locking->lock) \
- EVLOCK_UNLOCK(locking->lock, 0); \
+ EVLOCK_UNLOCK(locking->lock, 0); \
} while (0)
/* ==== For rate-limiting. */