Don't call pthread cancel on normal exits.

Calling pthread_cancel on threads that can exit normally is not needed.
Instead, we immediately call pthread_join if a thread can exit normally.
This commit is contained in:
Calvin Rose
2025-05-18 09:52:11 -05:00
parent e355cb07e0
commit 92e91259c3
2 changed files with 2634 additions and 2630 deletions
+10 -8
View File
@@ -564,15 +564,17 @@
(,ev/deadline ,sec nil ,f true)
(,resume ,f))))
(repeat 10
(assert (= :done (with-deadline2 10
(ev/sleep 0.01)
:done)) "deadline with interrupt exits normally"))
(for i 0 10
# (print "iteration " i)
(assert (= :done (with-deadline2 10
(ev/sleep 0.01)
:done)) "deadline with interrupt exits normally"))
(repeat 10
(let [f (coro (forever :foo))]
(ev/deadline 0.01 nil f true)
(assert-error "deadline expired" (resume f))))
(for i 0 10
# (print "iteration " i)
(let [f (coro (forever :foo))]
(ev/deadline 0.01 nil f true)
(assert-error "deadline expired" (resume f))))
# Use :err :stdout
(def- subproc-code '(do (eprint "hi") (eflush) (print "there") (flush)))