For static analysis, fr_assert() is plain assert...but otherwise,
for non-debugging versions, it just logs. That means that to
coverity, the mutex won't be unlocked, while in production it
will always be unlocked.
fr_assert(pthread_equal(this->pthread_id, pthread_id) != 0);
#endif
+#ifndef STATIC_ANALYZER
+ /*
+ * For static analyzers, fr_assert() is assert(),
+ * changing semantics so the mutex is not released.
+ */
fr_assert(this->in_use == true);
+#endif
return this;
}
}