All threads are detached so there is no need to join them and it may dereference causing crash on exit.
diff --git a/util.c b/util.c
index a9a3296..0657bba 100644
--- a/util.c
+++ b/util.c
@@ -682,9 +682,8 @@ void thr_info_cancel(struct thr_info *thr)
tq_freeze(thr->q);
if (PTH(thr) != 0L) {
- if (!pthread_cancel(thr->pth))
- pthread_join(thr->pth, NULL);
- PTH(thr) = 0L;
+ pthread_cancel(thr->pth);
+ PTH(thr) = 0L;
}
}