From 5c37d64eb9f644e21bb827ae0193405732267cdb Mon Sep 17 00:00:00 2001 From: delphij <delphij@FreeBSD.org> Date: Thu, 19 Jul 2007 06:57:46 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r171490, which included commits to RCS files with non-trunk default branches. --- contrib/diff/lib/waitpid.c | 72 ---------------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 contrib/diff/lib/waitpid.c (limited to 'contrib/diff/lib/waitpid.c') diff --git a/contrib/diff/lib/waitpid.c b/contrib/diff/lib/waitpid.c deleted file mode 100644 index bc07898..0000000 --- a/contrib/diff/lib/waitpid.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Emulate waitpid on systems that just have wait. - Copyright (C) 1994, 1995, 1998, 1999 Free Software Foundation, Inc. - - 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, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include <config.h> -#endif - -#include <errno.h> -#ifndef errno -extern int errno; -#endif - -#define WAITPID_CHILDREN 8 -static pid_t waited_pid[WAITPID_CHILDREN]; -static int waited_status[WAITPID_CHILDREN]; - -pid_t -waitpid (pid_t pid, int *stat_loc, int options) -{ - int i; - pid_t p; - - if (!options && (pid == -1 || 0 < pid)) - { - /* If we have already waited for this child, return it immediately. */ - for (i = 0; i < WAITPID_CHILDREN; i++) - { - p = waited_pid[i]; - if (p && (p == pid || pid == -1)) - { - waited_pid[i] = 0; - goto success; - } - } - - /* The child has not returned yet; wait for it, accumulating status. */ - for (i = 0; i < WAITPID_CHILDREN; i++) - if (! waited_pid[i]) - { - p = wait (&waited_status[i]); - if (p < 0) - return p; - if (p == pid || pid == -1) - goto success; - waited_pid[i] = p; - } - } - - /* We cannot emulate this wait call, e.g. because of too many children. */ - errno = EINVAL; - return -1; - -success: - if (stat_loc) - *stat_loc = waited_status[i]; - return p; -} -- cgit v1.1