** Ruud de Rooij <ruud@debian.org> Sun, 28 Mar 1999 15:34:03 +0200
*/
+#include <unistd.h>
#include <h/mh.h>
#include <h/signals.h>
#include <h/utils.h>
+#include <sys/stat.h>
-#ifdef TIME_WITH_SYS_TIME
+#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef TM_IN_SYS_TIME
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
#endif
+#include <time.h>
#include <errno.h>
#include <lockfile.h>
#endif
-#ifdef LOCKDIR
+#ifdef DOT_LOCKING
+# ifdef LOCKDIR
char *lockdir = LOCKDIR;
+# endif
#endif
/* Are we using any kernel locking? */
static void lockname(char *, struct lockinfo *, int);
static void timerON(char *, int);
static void timerOFF(int);
-static RETSIGTYPE alrmser(int);
+static void alrmser(int);
#if !defined(HAVE_LIBLOCKFILE)
static int lockit(struct lockinfo *);
j = errno;
close(fd);
- sleep(5);
+ sleep(1);
}
close(fd);
if (stat(lkinfo.curlock, &st) == -1) {
if (i++ > 5)
return -1;
- sleep(5);
+ sleep(1);
} else {
time_t curtime;
i = 0;
if (curtime > st.st_ctime + RSECS)
unlink(lkinfo.curlock);
else
- sleep(5);
+ sleep(1);
}
lockname(file, &lkinfo, 1);
}
curlock = li->curlock;
tmplock = li->tmplock;
- if ((fd = mkstemp(tmplock)) == -1)
+ if ((fd = mkstemp(tmplock)) == -1) {
+ advise(NULL, "unable to create temporary file in %s", tmplock);
return -1;
+ }
#if 0
/* write our process id into lock file */
** lockfiles, so another command doesn't remove them.
*/
-static RETSIGTYPE
+static void
alrmser(int sig)
{
char *lockfile;
struct lock *lp;
-#ifndef RELIABLE_SIGNALS
- SIGNAL(SIGALRM, alrmser);
-#endif
-
/* update the ctime of all the lock files */
for (lp = l_top; lp; lp = lp->l_next) {
lockfile = lp->l_lock;