Commit 35cd0245 authored by Luca Boccassi's avatar Luca Boccassi Committed by GitHub

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.
parents 33038da5 9ef34add
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment