/* * CDE - Common Desktop Environment * * Copyright (c) 1993-2012, The Open Group. All rights reserved. * * These libraries and programs are free software; you can * redistribute them and/or modify them under the terms of the GNU * Lesser General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) * any later version. * * These libraries and programs are distributed in the hope that * they will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public * License along with these libraries and programs; if not, write * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth * Floor, Boston, MA 02110-1301 USA */ /* $TOG: usleep.c /main/6 1998/04/06 13:32:38 mgreess $ */ /* */ /* * * (c) Copyright 1993, 1994 Hewlett-Packard Company * * (c) Copyright 1993, 1994 International Business Machines Corp. * * (c) Copyright 1993, 1994 Sun Microsystems, Inc. * * (c) Copyright 1993, 1994 Novell, Inc. * */ /*- * usleep.c - OS dependant implementation of usleep(). * * Copyright (c) 1991 by Patrick J. Naughton. * * Revision History: * 30-Aug-90: written. * */ #include "dtscreen.h" #if !defined(_AIX) && !defined(hpV4) && !defined(__linux__) && !defined(sun) && !defined(CSRG_BASED) int usleep(unsigned long usec) { #ifdef SYSV poll((struct poll *) 0, (size_t) 0, usec / 1000); /* ms resolution */ #else struct timeval timeout; timeout.tv_usec = usec % (unsigned long) 1000000; timeout.tv_sec = usec / (unsigned long) 1000000; select(0, (void *) 0, (void *) 0, (void *) 0, &timeout); #endif return 0; } #endif /* !_AIX && !hpV4*/ /* * returns the number of seconds since 01-Jan-70. * This is used to control rate and timeout in many of the animations. */ long seconds(void) { struct timeval now; gettimeofday(&now, (struct timezone *) 0); return now.tv_sec; }