|
|
1.1 ! root 1: /* pause.c ! 2: Pause for half a second. */ ! 3: ! 4: #include "uucp.h" ! 5: ! 6: #include "sysdep.h" ! 7: #include "system.h" ! 8: ! 9: /* Pick a timing routine to use. I somewhat arbitrarily picked usleep ! 10: above nap above napms above poll above select. */ ! 11: #if HAVE_USLEEP || HAVE_NAP || HAVE_NAPMS || HAVE_POLL ! 12: #undef HAVE_SELECT ! 13: #define HAVE_SELECT 0 ! 14: #endif ! 15: ! 16: #if HAVE_USLEEP || HAVE_NAP || HAVE_NAPMS ! 17: #undef HAVE_POLL ! 18: #define HAVE_POLL 0 ! 19: #endif ! 20: ! 21: #if HAVE_USLEEP || HAVE_NAP ! 22: #undef HAVE_NAPMS ! 23: #define HAVE_NAPMS 0 ! 24: #endif ! 25: ! 26: #if HAVE_USLEEP ! 27: #undef HAVE_NAP ! 28: #define HAVE_NAP 0 ! 29: #endif ! 30: ! 31: #if HAVE_SELECT ! 32: #include <sys/time.h> ! 33: #if HAVE_SYS_SELECT_H ! 34: #include <sys/select.h> ! 35: #endif ! 36: #endif ! 37: ! 38: #if HAVE_POLL ! 39: #if HAVE_STROPTS_H ! 40: #include <stropts.h> ! 41: #endif ! 42: #if HAVE_POLL_H ! 43: #include <poll.h> ! 44: #endif ! 45: #if ! HAVE_STROPTS_H && ! HAVE_POLL_H ! 46: /* We need a definition for struct pollfd, although it doesn't matter ! 47: what it contains. */ ! 48: struct pollfd ! 49: { ! 50: int idummy; ! 51: }; ! 52: #endif /* ! HAVE_STROPTS_H && ! HAVE_POLL_H */ ! 53: #endif /* HAVE_POLL */ ! 54: ! 55: #if HAVE_TIME_H ! 56: #if HAVE_SYS_TIME_AND_TIME_H || ! USE_SELECT_TIMER ! 57: #include <time.h> ! 58: #endif ! 59: #endif ! 60: ! 61: void ! 62: usysdep_pause () ! 63: { ! 64: #if HAVE_NAPMS ! 65: napms (500); ! 66: #endif /* HAVE_NAPMS */ ! 67: #if HAVE_NAP ! 68: #if HAVE_HUNDREDTHS_NAP ! 69: nap (50L); ! 70: #else ! 71: nap (500L); ! 72: #endif /* ! HAVE_HUNDREDTHS_NAP */ ! 73: #endif /* HAVE_NAP */ ! 74: #if HAVE_USLEEP ! 75: usleep (500 * (long) 1000); ! 76: #endif /* HAVE_USLEEP */ ! 77: #if HAVE_POLL ! 78: struct pollfd sdummy; ! 79: ! 80: /* We need to pass an unused pollfd structure because poll checks ! 81: the address before checking the number of elements. */ ! 82: poll (&sdummy, 0, 500); ! 83: #endif /* HAVE_POLL */ ! 84: #if HAVE_SELECT ! 85: struct timeval s; ! 86: ! 87: s.tv_sec = 0; ! 88: s.tv_usec = 500 * (long) 1000; ! 89: select (0, (pointer) NULL, (pointer) NULL, (pointer) NULL, &s); ! 90: #endif /* USE_SELECT_TIMER */ ! 91: #if ! HAVE_NAPMS && ! HAVE_NAP && ! HAVE_USLEEP ! 92: #if ! USE_SELECT_TIMER && ! HAVE_POLL ! 93: sleep (1); ! 94: #endif /* ! USE_SELECT_TIMER && ! HAVE_POLL */ ! 95: #endif /* ! HAVE_NAPMS && ! HAVE_NAP && ! HAVE_USLEEP */ ! 96: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.