Added missing newline in NEDsim error message.
[screensavers] / screenhack / usleep.c
CommitLineData
3144ee8a
AT
1/* xscreensaver, Copyright (c) 1992, 1996, 1997, 2003
2 * Jamie Zawinski <jwz@jwz.org>
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation. No representations are made about the suitability of this
9 * software for any purpose. It is provided "as is" without express or
10 * implied warranty.
11 */
12
13#ifdef HAVE_CONFIG_H
14# include "config.h"
15#else /* !HAVE_CONFIG_H */
16# ifndef NO_SELECT
17# define HAVE_SELECT
18# endif
19#endif /* !HAVE_CONFIG_H */
20
21#ifdef __STDC__
22# include <stdlib.h>
23#endif
24
25#ifdef HAVE_UNISTD_H
26# include <unistd.h>
27#endif
28
29#if defined(VMS)
30# include <descrip.h>
31# include <stdio.h>
32# include <lib$routines.h>
33#elif defined(HAVE_SELECT)
34# include <sys/time.h> /* for struct timeval */
35#endif
36
37
38#ifdef __SCREENHACK_USLEEP_H__
39ERROR, do not include that here
40#endif
41
42extern void screenhack_usleep (unsigned long usecs); /* suppress warning */
43
44void
45screenhack_usleep (unsigned long usecs)
46{
47# if defined(VMS)
48 float seconds = ((float) usecs)/1000000.0;
49 unsigned long int statvms = lib$wait(&seconds);
50
51#elif defined(HAVE_SELECT)
52 /* usleep() doesn't exist everywhere, and select() is faster anyway. */
53 struct timeval tv;
54 tv.tv_sec = usecs / 1000000L;
55 tv.tv_usec = usecs % 1000000L;
56 (void) select (0, 0, 0, 0, &tv);
57
58#else /* !VMS && !HAVE_SELECT */
59 /* If you don't have select() or usleep(), I guess you lose...
60 Maybe you have napms() instead? Let me know. */
61 usleep (usecs);
62
63#endif /* !VMS && !HAVE_SELECT */
64}