X-Git-Url: https://git.distorted.org.uk/~mdw/misc/blobdiff_plain/5b11bb47c213a3ec52fe045bffc6d4a0c12bc568..07f879f5414a20f0aa7ad13dfc1af0689c13f42d:/locking.c diff --git a/locking.c b/locking.c index 5aed6da..8931dbd 100644 --- a/locking.c +++ b/locking.c @@ -1,13 +1,13 @@ /* -*-c-*- * - * $Id: locking.c,v 1.2 2003/10/09 15:15:42 mdw Exp $ + * $Id$ * * Lock a file, run a program * * (c) 2003 Mark Wooding */ -/*----- Licensing notice --------------------------------------------------* +/*----- Licensing notice --------------------------------------------------* * * This file is part of the Toys utilties collection. * @@ -15,37 +15,17 @@ * 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. - * + * * Toys 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 Toys; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: locking.c,v $ - * Revision 1.2 2003/10/09 15:15:42 mdw - * Missed a paren. Un-`toys'-ify. - * - * Revision 1.1 2003/10/09 15:05:34 mdw - * Lots of stuff. - * - * Revision 1.3 2003/09/24 14:58:08 mdw - * Fix options parsing again. - * - * Revision 1.2 2003/09/24 14:14:03 mdw - * Fix option handling behaviour. - * - * Revision 1.1 2003/05/11 13:30:04 mdw - * Initial checkin. - * - */ - /*----- Header files ------------------------------------------------------*/ #include @@ -54,6 +34,7 @@ #include #include #include +#include #include #include @@ -115,7 +96,7 @@ int main(int argc, char *argv[]) struct flock l; char *p; int t = -1; - unsigned int ot; + unsigned int ot = 0; time_t nt; pid_t kid; int st; @@ -243,7 +224,9 @@ doneopts: errno = 0; } signal(SIGALRM, oalrm); - if (ot) { + if (!ot) + alarm(0); + else { nt = time(0) - nt; if (nt > ot) raise(SIGALRM);