From 4eb7f0e486b5b88cf635d8dfa7af15ad89f76ce9 Mon Sep 17 00:00:00 2001 From: espie Date: Tue, 15 Feb 2022 07:35:35 +0000 Subject: [PATCH] simplify code based on afresh1@'s remark: indeed I always need to have a state once I'm past the initial locking --- usr.sbin/pkg_add/OpenBSD/PackageInfo.pm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm b/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm index 2c67e648541..865deb4b95e 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PackageInfo.pm,v 1.62 2022/02/14 10:34:36 espie Exp $ +# $OpenBSD: PackageInfo.pm,v 1.63 2022/02/15 07:35:35 espie Exp $ # # Copyright (c) 2003-2014 Marc Espie # @@ -191,23 +191,18 @@ sub lock_db($;$) { my ($shared, $state) = @_; my $mode = $shared ? LOCK_SH : LOCK_EX; - my $s = - sub { - if (!defined $state) { - require OpenBSD::BaseState; - return 'OpenBSD::BaseState'; - } else { - return $state; - } - }; open($dlock, '<', $pkg_db) or return; if (flock($dlock, $mode | LOCK_NB)) { return; } - &$s->errprint("Package database already locked... awaiting release... "); + if (!defined $state) { + require OpenBSD::BaseState; + $state = 'OpenBSD::BaseState'; + } + $state->errprint("Package database already locked... awaiting release... "); while (!flock($dlock, $mode)) { } - &$s->errsay("done!"); + $state->errsay("done!"); return; } -- 2.20.1