On Sep 27, 2016 15:00, "Eric S. Raymond" <[email protected]> wrote: > > Hal Murray <[email protected]>: > > man 7 signal has a long list of what you can do in a signal handler. (all > > other system calls are unsafe) > > > > Is there something similar that applies to killing threads? If so, where is > > it documented? > > > > For example, if I kill a thread that is in the middle of malloc, are things > > guaranteed to work correctly or can some global state be left in a broken > > condition. (or a lock locked, or ...) > > It varies. Some library calls are documented to be thread-safe. The glibc > version of malloc is; some older versions were not. In general, if it's > not documented thread-safe you need to wrap your own mutex around it.
Hal's question was about *killing* threads. Even if a thread only 3 ever makes thread-safe calls, it's still unsafe to kill, because doing so can leave its mutexes locked and the data they control in an inconsistent state.
_______________________________________________ devel mailing list [email protected] http://lists.ntpsec.org/mailman/listinfo/devel
