-
Mike Percy authored
Previously, the implementation of google::GetStackTrace() that uses libunwind uses a global variable that enforces that only one thread may invoke libunwind at a time. However, libunwind is thread-safe. The comment above the variable indicates that it is to protect against reentrancy issues. Instead of using a global variable, it would be much better to use a thread-local variable to protect against these reentrancy issues. That should provide the needed reentrancy protection while allowing multiple threads to get stack traces at the same time. It also allows for the removal of the atomic CAS operations on the variable. Resolves #160.
f581614a