The detached alarm thread waits on a condition variable that was a namespace-scope static. At exit its destructor ran with the thread still waiting, and glibc's pthread_cond_destroy blocks then, so a process that called alarm never exited on Linux. The mutex, condition variable, deadline and started flag now live in one structure allocated once and never destroyed. AI-assisted (Claude Code). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||