home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / x / volume10 / xlock / part01 / usleep.c < prev    next >
C/C++ Source or Header  |  1990-12-07  |  2KB  |  66 lines

  1. #ifndef lint
  2. static char sccsid[] = "@(#)usleep.c    1.2 90/10/28 XLOCK SMI";
  3. #endif
  4. /*-
  5.  * usleep.c - OS dependant implementation of usleep().
  6.  *
  7.  * Copyright (c) 1990 by Patrick Naughton and Sun Microsystems, Inc.
  8.  *
  9.  * Permission to use, copy, modify, and distribute this software and its
  10.  * documentation for any purpose and without fee is hereby granted,
  11.  * provided that the above copyright notice appear in all copies and that
  12.  * both that copyright notice and this permission notice appear in
  13.  * supporting documentation.
  14.  *
  15.  * This file is provided AS IS with no warranties of any kind.  The author
  16.  * shall have no liability with respect to the infringement of copyrights,
  17.  * trade secrets or any patents by this file or any part thereof.  In no
  18.  * event will the author be liable for any lost revenue or profits or
  19.  * other special, indirect and consequential damages.
  20.  *
  21.  * Comments and additions should be sent to the author:
  22.  *
  23.  *               naughton@eng.sun.com
  24.  *
  25.  *               Patrick J. Naughton
  26.  *               MS 14-01
  27.  *               Windows and Graphics Group
  28.  *               Sun Microsystems, Inc.
  29.  *               2550 Garcia Ave
  30.  *               Mountain View, CA  94043
  31.  *
  32.  * Revision History:
  33.  * 30-Aug-90: written.
  34.  *
  35.  */
  36.  
  37. #include "xlock.h"
  38.  
  39. int
  40. usleep(usec)
  41.     unsigned long usec;
  42. {
  43. #ifdef SYSV
  44.     poll((struct poll *) 0, (size_t) 0, usec / 1000);    /* ms resolution */
  45. #else
  46.     struct timeval timeout;
  47.     timeout.tv_usec = usec % (unsigned long) 1000000;
  48.     timeout.tv_sec = usec / (unsigned long) 1000000;
  49.     select(0, (void *) 0, (void *) 0, (void *) 0, &timeout);
  50. #endif
  51.     return 0;
  52. }
  53.  
  54. /*
  55.  * returns the number of seconds since 01-Jan-70.
  56.  * This is used to control rate and timeout in many of the animations.
  57.  */
  58. long
  59. seconds()
  60. {
  61.     struct timeval now;
  62.  
  63.     gettimeofday(&now, (struct timezone *) 0);
  64.     return now.tv_sec;
  65. }
  66.