Home | History | Annotate | Download | only in src
      1 /***************************************************************************
      2  *                                  _   _ ____  _
      3  *  Project                     ___| | | |  _ \| |
      4  *                             / __| | | | |_) | |
      5  *                            | (__| |_| |  _ <| |___
      6  *                             \___|\___/|_| \_\_____|
      7  *
      8  * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel (at) haxx.se>, et al.
      9  *
     10  * This software is licensed as described in the file COPYING, which
     11  * you should have received as part of this distribution. The terms
     12  * are also available at https://curl.haxx.se/docs/copyright.html.
     13  *
     14  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
     15  * copies of the Software, and permit persons to whom the Software is
     16  * furnished to do so, under the terms of the COPYING file.
     17  *
     18  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
     19  * KIND, either express or implied.
     20  *
     21  ***************************************************************************/
     22 #include "tool_setup.h"
     23 
     24 #ifdef HAVE_SYS_SELECT_H
     25 #  include <sys/select.h>
     26 #endif
     27 
     28 #ifdef HAVE_POLL_H
     29 #  include <poll.h>
     30 #elif defined(HAVE_SYS_POLL_H)
     31 #  include <sys/poll.h>
     32 #endif
     33 
     34 #ifdef MSDOS
     35 #  include <dos.h>
     36 #endif
     37 
     38 #include "tool_sleep.h"
     39 
     40 #include "memdebug.h" /* keep this as LAST include */
     41 
     42 void tool_go_sleep(long ms)
     43 {
     44 #if defined(MSDOS)
     45   delay(ms);
     46 #elif defined(WIN32)
     47   Sleep(ms);
     48 #elif defined(HAVE_POLL_FINE)
     49   (void)poll((void *)0, 0, (int)ms);
     50 #else
     51   struct timeval timeout;
     52   timeout.tv_sec = ms / 1000L;
     53   ms = ms % 1000L;
     54   timeout.tv_usec = (int)ms * 1000;
     55   select(0, NULL,  NULL, NULL, &timeout);
     56 #endif
     57 }
     58 
     59