On 2015-08-06 17:28, Alexander Couzens wrote: > lock -n is similiar to flock -n. If the lock was already taken, > fail with exit code = 1 and write error message to stderr. > > example: > if ! lock -n /tmp/foo ; then > echo lock exits. > else > echo lock was free. But is locked now. > fi >> lock was free. But is locked now. >> lock exists. > > Signed-off-by: Alexander Couzens <lyn...@fe80.eu> > --- > package/utils/busybox/patches/220-add_lock_util.patch | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/package/utils/busybox/patches/220-add_lock_util.patch > b/package/utils/busybox/patches/220-add_lock_util.patch > index f42edcb..08f489a 100644 > --- a/package/utils/busybox/patches/220-add_lock_util.patch > +++ b/package/utils/busybox/patches/220-add_lock_util.patch > @@ -33,9 +33,11 @@ > lib-$(CONFIG_MAKEDEVS) += makedevs.o > lib-$(CONFIG_MAN) += man.o > lib-$(CONFIG_MICROCOM) += microcom.o > +Index: busybox-1.23.2/miscutils/lock.c > +=================================================================== > --- /dev/null > -+++ b/miscutils/lock.c > -@@ -0,0 +1,135 @@ > ++++ busybox-1.23.2/miscutils/lock.c > +@@ -0,0 +1,145 @@ Please use the right refresh method or run make package/busybox/refresh.
> @@ -65,6 +68,7 @@ > + " -s Use shared locking\n" > + " -u Unlock\n" > + " -w Wait for the lock to become free, don't > acquire lock\n" > ++ " -n Fail rather than wait\n" > + "\n", name); > + exit(1); > +} > @@ -104,7 +110,10 @@ > + } > + } > + > -+ if (flock(fd, (shared ? LOCK_SH : LOCK_EX)) < 0) { > ++ flags = shared ? LOCK_SH : LOCK_EX; > ++ flags |= failinsteadwait ? LOCK_NB : 0; > ++ > ++ if ((ret = flock(fd, flags)) < 0) { > + fprintf(stderr, "Can't lock %s\n", file); > + return 1; > + } "failinsteadwait" sounds a bit quirky, how about something like "try_lock" instead. Same applies for the description. - Felix _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel