This will fix the issue a user in Japan reported in his blog.
http://kzk9.net/blog/2009/05/deadlock_with_gflags_and_glog_2.html
According to his description, when he use glog and gflags-1.1, gflags'
code uses glog's Mutex, the Mutex cannot lock the pthread_mutex, and
the program stops.
The bug happens with the combination of gflags-1.1 and glog. It seems
that the issue was caused by incompatibility of Mutex classes. Though I
couldn't reproduce this issue, the reporter of this bug said that
adding namespace fixes the problem and I think it is generally good
idea to use namespace for this kind of common component to avoid
incompatibilities. So, I check this change in now. This patch
will protect glog from future changes on Mutex as well.
--This line, and those below, will be ignored--
M src/base/mutex.h
git-svn-id: https://google-glog.googlecode.com/svn/trunk@51 eb4d4688-79bd-11dd-afb4-1d65580434c0
- configure.ac: Add -lpthread only if acx_pthread_ok is yes. In cygwin, we use Windows' thread so that we don't need -lpthread.
- base/mutex.h: Define NOMINMAX before we include windows.h.
- glog/*.h: Make sure that dllimport doesn't appear in cygwin. Note that windows.h may define _WIN32 macro.
- utilities.h: Define OS_CYGWIN.
git-svn-id: https://google-glog.googlecode.com/svn/trunk@30 eb4d4688-79bd-11dd-afb4-1d65580434c0
note was copied from google-perftools's notice (google-perftools/INSTALL). I
modified the notice because the situation around stacktracer is a bit different
between glog and perftools. Perftool's tcmalloc hooks malloc and its
stacktracer must not call malloc. In glog, stacktracer with malloc can be an
issue only when users use InstallFailureSignalHandler() and a signal is raised
inside malloc.
git-svn-id: https://google-glog.googlecode.com/svn/trunk@19 eb4d4688-79bd-11dd-afb4-1d65580434c0
Since we introduced the API to set signal handler and print a
stacktrace, we should avoid glibc's backtrace, which may call malloc.
Basically, we choose the way to produce a stacktrace as same as
perftools.
Also, I removed GetStackFrames, which is not used and not implemented
with glibc.
git-svn-id: https://google-glog.googlecode.com/svn/trunk@16 eb4d4688-79bd-11dd-afb4-1d65580434c0
The original way (ls && tail -n 1) could not handle version numbers which have patch level proprely (e.g., 0.1.1.tar.gz is considered less than 0.1.tar.gz since ls command orders files lexicographically).
git-svn-id: https://google-glog.googlecode.com/svn/trunk@15 eb4d4688-79bd-11dd-afb4-1d65580434c0
Add InstallFailureSignalHandler(). The function installs a signal handler that will dump useful information when the program crashes on certain signals such as SIGSEGV.
git-svn-id: https://google-glog.googlecode.com/svn/trunk@12 eb4d4688-79bd-11dd-afb4-1d65580434c0
will dump useful information when the program crashes on certain signals such
as SIGSEGV.
Also, changed the version of autoconf (2.59 => 2.61).
git-svn-id: https://google-glog.googlecode.com/svn/trunk@11 eb4d4688-79bd-11dd-afb4-1d65580434c0
gflags isn't initialized when REGISTER_MODULE_INITIALIZER is invoked,
we couldn't initialize vmodule_list properly. Modified to call
VLOG2Initializer in the first call of InitVLOG3__.
git-svn-id: https://google-glog.googlecode.com/svn/trunk@8 eb4d4688-79bd-11dd-afb4-1d65580434c0
has execinfo.h (e.g., MacOSX 10.5). Though dladdr may not be async
signal safe, it's OK since glog's stacktrace doesn't depend on signals.
git-svn-id: https://google-glog.googlecode.com/svn/trunk@7 eb4d4688-79bd-11dd-afb4-1d65580434c0