• Mike Percy's avatar
    Use thread local for libunwind GetStackTrace() · f581614a
    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