Huh? You do realize that the standard assert() macro already is compiled out if NDEBUG is defined, right?
Your code could just as well be written as
assert(pthread_mutex_unlock(&lock) == 0);
which of course has the added benefit of not inventing anything new, i.e. being standard and immediately understood by anyone who knows the language and its libraries reasonably well.