Commit 9297ca49 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

configure: detect the broken poll() in macOS 10.12

Fixes #1057
parent 358fd328
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -4803,11 +4803,27 @@ AC_DEFUN([CURL_CHECK_FUNC_POLL], [
      AC_LANG_PROGRAM([[
        $curl_includes_stdlib
        $curl_includes_poll
        $curl_includes_time
      ]],[[
        /* detect the original poll() breakage */
        if(0 != poll(0, 0, 10))
          exit(1); /* fail */
        else
          exit(0);
        else {
          /* detect the 10.12 poll() breakage */
          struct timeval before, after;
          int rc;
          size_t us;

          gettimeofday(&before, NULL);
          rc = poll(NULL, 0, 500);
          gettimeofday(&after, NULL);

          us = (after.tv_sec - before.tv_sec) * 1000000 +
            (after.tv_usec - before.tv_usec);

          if(us < 400000)
            exit(1);
        }
      ]])
    ],[
      AC_MSG_RESULT([yes])