app: a few improvements to the GimpBacktrace Linux backend
Blacklist the "threaded-ml" thread, which seems to mask the backtrace signal. Improve signal-handler synchronozation, to avoid segfaulting when giving up on waiting for all threads to handle the signal. Furthermore, when one or more threads fail to handle the signal in time, return a GimpBacktrace instance with backtraces for all the other threads, and with empty backtraces for all the non-responding threads, instead of returning NULL and leaking the allocated instance. Don't blacklist threads that failed to handle the signal in time, and instead shorten the wait period for handling the signal, and yield execution during waiting to lower the CPU usage.
Showing with 59 additions and 34 deletions