https://issues.dlang.org/show_bug.cgi?id=13416
Martin Nowak <c...@dawg.eu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |c...@dawg.eu --- Comment #4 from Martin Nowak <c...@dawg.eu> --- That's a dead-lock in the pthread library. Both pthread_attr_get_np and pthread_kill lock the same thread mutex. _pthread_attr_get_np: https://github.com/freebsd/freebsd/blob/428b45aa532260e8c6ddf0217ec31db2234d29a8/lib/libthr/thread/thr_attr.c#L154 _pthread_kill: https://github.com/freebsd/freebsd/blob/428b45aa532260e8c6ddf0217ec31db2234d29a8/lib/libthr/thread/thr_kill.c#L64 _thr_find_thread: https://github.com/freebsd/freebsd/blob/428b45aa532260e8c6ddf0217ec31db2234d29a8/lib/libthr/thread/thr_list.c#L351 We should try to use pthread_suspend_np or pthread_suspend_all_np instead. Without a signal handler we'd still need to obtain the stack top. There seems to be a function on OpenBSD pthread_stackseg_np, not sure how to do it on FreeBSD. --