mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-27 07:31:03 +08:00
Merge pull request #2610 from bjovke/my_work_2
Problem: When using print_backtrace() on Linux with libunwind, printout of stack traces from multiple threads are interleaved. Solution: added static mutex to serialize printing of stack traces.
This commit is contained in:
commit
35cd0245c9
@ -389,9 +389,12 @@ int zmq::wsa_error_to_errno (int errcode)
|
||||
#include <libunwind.h>
|
||||
#include <dlfcn.h>
|
||||
#include <cxxabi.h>
|
||||
#include "mutex.hpp"
|
||||
|
||||
void zmq::print_backtrace (void)
|
||||
{
|
||||
static zmq::mutex_t mtx;
|
||||
mtx.lock ();
|
||||
Dl_info dl_info;
|
||||
unw_cursor_t cursor;
|
||||
unw_context_t ctx;
|
||||
@ -429,8 +432,10 @@ void zmq::print_backtrace (void)
|
||||
rc ? func_name : demangled_name, (unsigned long) offset);
|
||||
free (demangled_name);
|
||||
}
|
||||
|
||||
puts ("");
|
||||
|
||||
fflush (stdout);
|
||||
mtx.unlock ();
|
||||
}
|
||||
|
||||
#else
|
||||
|
Loading…
x
Reference in New Issue
Block a user