diff --git a/src/allreduce_base.cc b/src/allreduce_base.cc index 2e79324e3..143db6e1d 100644 --- a/src/allreduce_base.cc +++ b/src/allreduce_base.cc @@ -207,11 +207,11 @@ utils::TCPSocket AllreduceBase::ConnectTracker(void) const { utils::Socket::Error("Connect"); } else { fprintf(stderr, "retry connect to ip(retry time %d): [%s]\n", retry, tracker_uri.c_str()); - #ifdef _MSC_VER +#if defined(_MSC_VER) || defined (__MINGW32__) Sleep(retry << 1); - #else +#else sleep(retry << 1); - #endif +#endif continue; } } diff --git a/src/allreduce_robust.cc b/src/allreduce_robust.cc index db829eaa5..d0c291147 100644 --- a/src/allreduce_robust.cc +++ b/src/allreduce_robust.cc @@ -1,5 +1,5 @@ /*! - * Copyright (c) 2014 by Contributors + * Copyright (c) 2014-2018 by Contributors * \file allreduce_robust.cc * \brief Robust implementation of Allreduce * @@ -53,7 +53,7 @@ void AllreduceRobust::Shutdown(void) { #ifdef __APPLE__ // In OSX, one worker shutdowns and closes sockets while rest still run kCheckAck // This cause rest workers checkandrecover and hang inf, https://github.com/dmlc/xgboost/pull/3818 - // TODO: a fundamental fix for this + // TODO(Chen Qin): a fundamental fix for this sleep(2); #endif AllreduceBase::Shutdown(); diff --git a/src/socket.h b/src/socket.h index cfc2449c7..4a8dfe2d7 100644 --- a/src/socket.h +++ b/src/socket.h @@ -28,8 +28,11 @@ #include #include "../include/rabit/internal/utils.h" -#if defined(_WIN32) +#if defined(_WIN32) && not defined(__MINGW32__) typedef int ssize_t; +#endif + +#if defined(_WIN32) typedef int sock_size_t; static inline int poll(struct pollfd *pfd, int nfds,