Author: glen Date: Thu Nov 8 01:42:10 2007 New Revision: 9016 Modified: rc-scripts/trunk/man/usleep.1 rc-scripts/trunk/src/Makefile.am rc-scripts/trunk/src/usleep.c Log: - update with suse variant from killproc-2.12 (and who's oot? http://lists.rpath.com/pipermail/initscripts-commits/2006-December/000573.html)
Modified: rc-scripts/trunk/man/usleep.1 ============================================================================== --- rc-scripts/trunk/man/usleep.1 (original) +++ rc-scripts/trunk/man/usleep.1 Thu Nov 8 01:42:10 2007 @@ -1,25 +1,50 @@ -.TH USLEEP 1 "Red Hat, Inc" \" -*- nroff -*- +.\" +.\" Copyright 2001 Werner Fink, 2001 SuSE GmbH Nuernberg, Germany. +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.TH USLEEP 1 "Jan 31, 2001" "Version 1.16" "The SuSE boot concept" +.UC 1 .SH NAME -usleep \- sleep some number of microseconds +Usleep \- sleep for the specified number of microseconds +.\" .SH SYNOPSIS -.B usleep -[\fInumber\fP] +.\" +.B usleep [ +.I usec +.B ] +.\" .SH DESCRIPTION .B usleep -sleeps some number of microseconds. The default is 1. -.SH OPTIONS -\fI--usage\fP -Show short usage message. -.TP -\fI--help, -?\fP -Print help information. -.TP -\fI-v, --version\fP -Print version information. +pauses for the number of +.I usec +microseconds. The default is +.B 1 +microsecond. If +.B 0 +microseconds are specified +.BR sched_yield (2) +is called. +.\" .SH BUGS -Probably not accurate on many machines down to the microsecond. Count -on precision only to -4 or maybe -5. +The +.B usleep +program uses the +.BR usleep (3) +function and therefore shows the same weaknesses +by any system activity. +\." +.SH SEE ALSO +.BR usleep (3), +.BR sleep (1), +.BR sleep (3), +.BR sched_yield (2). +\." +.SH COPYRIGHT +2001 Werner Fink, +2001 SuSE GmbH Nuernberg, Germany. .SH AUTHOR -Donald Barnes <[EMAIL PROTECTED]> -.br -Erik Troan <[EMAIL PROTECTED]> +Werner Fink <[EMAIL PROTECTED]> Modified: rc-scripts/trunk/src/Makefile.am ============================================================================== --- rc-scripts/trunk/src/Makefile.am (original) +++ rc-scripts/trunk/src/Makefile.am Thu Nov 8 01:42:10 2007 @@ -49,7 +49,6 @@ usernetctl_SOURCES = usernetctl.c usleep_SOURCES = usleep.c -usleep_LDADD = -lpopt loglevel_SOURCES = loglevel.c Modified: rc-scripts/trunk/src/usleep.c ============================================================================== --- rc-scripts/trunk/src/usleep.c (original) +++ rc-scripts/trunk/src/usleep.c Thu Nov 8 01:42:10 2007 @@ -1,76 +1,71 @@ -/* - * usleep - * - * Written by Donald Barnes <[EMAIL PROTECTED]> for Red Hat, Inc. - * - * Copyright (c) 1997-2003 Red Hat, Inc. All rights reserved. +/* + * usleep.c Sleep for the specified number of microseconds * - * This software may be freely redistributed under the terms of the GNU - * public license. + * Usage: usleep [ microseconds ] * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Copyright 2001 Werner Fink, 2001 SuSE GmbH Nuernberg, Germany. + * Copyright 2005 Werner Fink, 2005 SUSE LINUX Products GmbH, Germany. * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Author: Werner Fink <[EMAIL PROTECTED]> */ - -#include <unistd.h> -#include <stdlib.h> +#ifndef __USE_STRING_INLINES +# define __USE_STRING_INLINES +#endif +#ifdef __NO_STRING_INLINES +# undef __NO_STRING_INLINES +#endif +#include <libgen.h> #include <string.h> #include <stdio.h> - -#include "popt.h" - -int main(int argc, char **argv) { - unsigned long count; - poptContext optCon; - int showVersion = 0; - int showOot = 0; - int rc; - char * countStr = NULL; - struct poptOption options[] = { - { "version", 'v', POPT_ARG_NONE, &showVersion, 0, - "Display the version of this program, and exit" }, - { "oot", 'o', POPT_ARG_NONE, &showOot, 0, - "oot says hey!" }, - POPT_AUTOHELP - { 0, 0, 0, 0, 0 } - }; - - optCon = poptGetContext("usleep", argc, argv, options,0); - /*poptReadDefaultConfig(optCon, 1);*/ - poptSetOtherOptionHelp(optCon, "[microseconds]"); - - if ((rc = poptGetNextOpt(optCon)) < -1) { - fprintf(stderr, "usleep: bad argument %s: %s\n", - poptBadOption(optCon, POPT_BADOPTION_NOALIAS), - poptStrerror(rc)); - return 2; - } - - if (showVersion) { - printf("usleep version 1.2\n usleep --help for more info\n"); - return 0; - } - - if (showOot) { - printf("oot says hey!\n"); - return 0; - } - - countStr = poptGetArg(optCon); - - if (countStr == NULL) count = 1; - - else if (countStr && poptGetArg(optCon)) { - fprintf(stderr, "%s: exactly one argument (number of microseconds) " - "must be used\n", argv[0]); - return 2; - } - - else count = strtoul(countStr, NULL, 0); - - usleep(count); - return 0; -} +#include <stdlib.h> +#include <unistd.h> +#ifdef _POSIX_PRIORITY_SCHEDULING +# include <sched.h> +#endif +#define USAGE "Usage:\t%s [ microseconds ]\n", we_are + +static char *we_are; +int main(int argc, char **argv) +{ + unsigned long int usec = 1; + + if (argc > 2) + goto err; + + if (argc > 1) { + char *endptr; + usec = strtoul(argv[1], &endptr, 10); + if (*endptr != '\0') + goto err; + } + + if (usec) + usleep(usec); +#ifdef _POSIX_PRIORITY_SCHEDULING + else + (void)sched_yield(); +#endif + _exit(0); + + /* Do this at the end for speed */ +err: + we_are = basename(argv[0]); + fprintf(stderr, USAGE); + + if (argc > 1 && *(argv[1]) == '-') { + argv[1]++; + if (!strcmp(argv[1], "-help") || *(argv[1]) == 'h' || *(argv[1]) == '?') { + fprintf(stderr, "Sleep for the specified number of microseconds.\n\n"); + fprintf(stderr, "Help options:\n"); + fprintf(stderr, " -h, -?, --help display this help and exit.\n"); + exit (0); + } + } + exit (1); +} _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit