lock_error
lock_error(lock, func, file, line, "acquire locklock");
lock_error(lock, func, file, line,
lock_error(lock, func, file, line, "wrong lock type");
lock_error(e, func, file, line, "delete while locked.");
lock_error(e, func, file, line, "delete while waited on.");
if(!thr) lock_error(lock, func, file, line, "no thread info");
lock_error(lock, func, file, line, "thread already owns lock");
lock_error(lock, func, file, line, "thread already has wrlock");
lock_error(lock, func, file, line,
lock_error(lock, func, file, line, "got nonexclusive lock");
lock_error(lock, func, file, line, "got nonexclusive wrlock");
if(!thr) lock_error(lock, func, file, line, "no thread info");
lock_error(lock, func, file, line, "unlock nonlocked lock");
lock_error(lock, func, file, line, "too many unlocks");
static void lock_error(struct checked_lock* lock,