- you don't need to call unlock_db. When the process dies, the fd dies with
it, and the lock.
- I've committed glue to PackageInfo.pm to make lock_db self-contained
(it will pull BaseState in on an "as needed" basis, which also comes in
handy for other locks prior to having a state)
Index: fw_update.sh
===================================================================
RCS file: /cvs/src/usr.sbin/fw_update/fw_update.sh,v
retrieving revision 1.37
diff -u -p -r1.37 fw_update.sh
--- fw_update.sh 11 Feb 2022 00:46:58 -0000 1.37
+++ fw_update.sh 14 Feb 2022 10:35:57 -0000
@@ -206,13 +206,11 @@ lock_db() {
perl <<'EOL' |&
use v5.16;
use warnings;
- use OpenBSD::PackageInfo qw< lock_db unlock_db >;
- use OpenBSD::BaseState;
+ use OpenBSD::PackageInfo qw< lock_db >;
$|=1;
- lock_db(0, 'OpenBSD::BaseState');
- END { unlock_db }
+ lock_db(0);
$SIG{TERM} = sub { exit };
say $$;