Only pthread_join when pthread_cancel does not return an error.
diff --git a/util.c b/util.c
index 0ad8b7d..0bf71dc 100644
--- a/util.c
+++ b/util.c
@@ -681,7 +681,7 @@ void thr_info_cancel(struct thr_info *thr)
if (thr->q)
tq_freeze(thr->q);
if (thr->pth) {
- if (pthread_cancel(thr->pth))
+ if (!pthread_cancel(thr->pth))
pthread_join(thr->pth, NULL);
thr->pth = 0L;
}