mirror of
https://github.com/apache/arrow.git
synced 2026-10-29 00:56:31 +08:00
[C++] Add support for glog on Windows
Windows doesn't have sigaction() but has signal(). glog also uses signal(): https://github.com/google/glog/blob/master/src/signalhandler.cc#L390
This commit is contained in:
1 parent
3ab2f52b4f
commit
216d2da8ce
3 files changed
+7
-1
No files matched your search
@@ -47,7 +47,6 @@ cmake ^
|
||||
-DARROW_VERBOSE_THIRDPARTY_BUILD=OFF ^
|
||||
-DARROW_PACKAGE_PREFIX=%MINGW_PREFIX% ^
|
||||
-DARROW_JEMALLOC=OFF ^
|
||||
-DARROW_USE_GLOG=OFF ^
|
||||
-DARROW_PARQUET=ON ^
|
||||
-DARROW_PYTHON=ON ^
|
||||
-DPythonInterp_FIND_VERSION=ON ^
|
||||
|
||||
@@ -32,6 +32,7 @@ pacman --sync --refresh --noconfirm ^
|
||||
"%MINGW_PACKAGE_PREFIX%-double-conversion" ^
|
||||
"%MINGW_PACKAGE_PREFIX%-flatbuffers" ^
|
||||
"%MINGW_PACKAGE_PREFIX%-gflags" ^
|
||||
"%MINGW_PACKAGE_PREFIX%-glog" ^
|
||||
"%MINGW_PACKAGE_PREFIX%-gobject-introspection" ^
|
||||
"%MINGW_PACKAGE_PREFIX%-gtest" ^
|
||||
"%MINGW_PACKAGE_PREFIX%-gtk-doc" ^
|
||||
|
||||
@@ -161,6 +161,11 @@ void ArrowLog::UninstallSignalAction() {
|
||||
// This signal list comes from glog's signalhandler.cc.
|
||||
// https://github.com/google/glog/blob/master/src/signalhandler.cc#L58-L70
|
||||
std::vector<int> installed_signals({SIGSEGV, SIGILL, SIGFPE, SIGABRT, SIGTERM});
|
||||
#ifdef WIN32
|
||||
for (int signal_num : installed_signals) {
|
||||
ARROW_CHECK(signal(signal_num, SIG_DFL) != SIG_ERR);
|
||||
}
|
||||
#else
|
||||
struct sigaction sig_action;
|
||||
memset(&sig_action, 0, sizeof(sig_action));
|
||||
sigemptyset(&sig_action.sa_mask);
|
||||
@@ -169,6 +174,7 @@ void ArrowLog::UninstallSignalAction() {
|
||||
ARROW_CHECK(sigaction(signal_num, &sig_action, NULL) == 0);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void ArrowLog::ShutDownArrowLog() {
|
||||
|
||||
Reference in new issue
Block a user