void ovs_rwlock_wrlock_at(const struct ovs_rwlock *rwlock, const char *where)
OVS_ACQ_WRLOCK(rwlock);
#define ovs_rwlock_wrlock(rwlock) \
- ovs_rwlock_wrlock_at(rwlock, SOURCE_LOCATOR);
+ ovs_rwlock_wrlock_at(rwlock, SOURCE_LOCATOR)
int ovs_rwlock_trywrlock_at(const struct ovs_rwlock *rwlock, const char *where)
OVS_TRY_WRLOCK(0, rwlock);
void ovs_rwlock_rdlock_at(const struct ovs_rwlock *rwlock, const char *where)
OVS_ACQ_RDLOCK(rwlock);
#define ovs_rwlock_rdlock(rwlock) \
- ovs_rwlock_rdlock_at(rwlock, SOURCE_LOCATOR);
+ ovs_rwlock_rdlock_at(rwlock, SOURCE_LOCATOR)
int ovs_rwlock_tryrdlock_at(const struct ovs_rwlock *rwlock, const char *where)
OVS_TRY_RDLOCK(0, rwlock);
return OVS_UNLIKELY(!ovsthread_once_is_done__(once)
&& !ovsthread_once_start__(once));
}
-
-#ifdef __CHECKER__
-#define ovsthread_once_start(ONCE) \
- ((ONCE)->done ? false : ({ OVS_MACRO_LOCK((&ONCE->mutex)); true; }))
-#endif
\f
/* Thread ID.
*