CHECK_ERR
CHECK_ERR(pthread_cond_destroy(&cnd->cond));
CHECK_ERR(pthread_cond_wait(&cnd->cond, &mtx->lock));
CHECK_ERR(pthread_cond_signal(&cnd->cond));
CHECK_ERR(pthread_cond_broadcast(&cnd->cond));
CHECK_ERR(pthread_mutexattr_init(&attr));
CHECK_ERR(pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK));
CHECK_ERR(pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE));
CHECK_ERR(pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED));
CHECK_ERR(pthread_mutex_init(&mtx->lock, &attr));
CHECK_ERR(pthread_mutexattr_destroy(&attr));
CHECK_ERR(pthread_mutex_destroy(&mtx->lock));
CHECK_ERR(pthread_mutex_lock(&mtx->lock));
CHECK_ERR(pthread_mutex_unlock(&mtx->lock));
CHECK_ERR(ret);
CHECK_ERR(pthread_condattr_init(&attr));
CHECK_ERR(pthread_condattr_setpshared(&attr, PTHREAD_PROCESS_SHARED));
CHECK_ERR(pthread_cond_init(&cnd->cond, &attr));
CHECK_ERR(pthread_condattr_destroy(&attr));