From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684339516; x=1686931516; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=EdQQsYEgP3whHmm+zjcC6Oyodk2B5o8F0OVeTJaosLM=; b=cJB1swb+njvNmbRiGYc8k3mOrwUeHHA+d0gm02kHlwdN/2/lPr3mmP9NajRjeCudev VrHzpKniyv9dV+y1E1k0LpHjz8k3oNxR6KkbYFi0GoxV2lJxBtxCyiIeASAoxu1vTCk8 K7kxBLn09IHjydMTQaA2HaHuz422GQsX+6engizHPyc2onzv7vJE9LRSVbaLD+Dd27gE 2DeF5dM/Hd8V0r/TkDACawT+gM6qJGo0v0MSsOajqO8SYPV6tce2TxvO3r3B53ZN/tJB 8kQ/kbugb8jqJwkl6pc4IWCSMOCjO66bvaPtlR2fpAQUAi8TCYQ0Sm6LK0TSiiB0xPE+ rUKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684339516; x=1686931516; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=EdQQsYEgP3whHmm+zjcC6Oyodk2B5o8F0OVeTJaosLM=; b=ViYtzxYZCMAQHCuoEBWR5tkjwWip/Nj7ZsuKafsshXLtpV1fUCpVLGICfNuDJPk+kM JZn2W2anSEfgyK2y3/Ihf30VDOMPQ59UbDI4T/MB7YMV0sSLxUr3ucAGPo/EQgRav7o5 kz1Rfx6/OXfIGVvCakH7UEbwu++mlHvfxrjnWPZ4O0bwLELUBsawg00rC13NTJfA79oA Y4yR2w4dNKgVrQvJUi/CNTnUg+7M/YK0alOusM5KnHY0lqLlaUUyIlpqiYZLprZ0ollm /WQcxkOzmoyIqxog4FyXBZiMSqYuP5LnvU2AI+2vv3TCADnAraPgT41luTUE1Wgj8JAN XPwg== X-Gm-Message-State: AC+VfDwiuQ/scApdOHSvzZW6J8hdwK/rzvbtojHWU8pEq63Ypc33DVD1 x+jPLDhtcTbKj1t3zkv/na1sKmsf+68= X-Google-Smtp-Source: ACHHUZ6pNDWtT06VL1pp9OMge3fXIo+7t6D3mdxhFGAVjy+KJxhS1dLj+xMp2FOVXrhdkG6NIUFx7A== X-Received: by 2002:adf:db4e:0:b0:309:3b9a:dd55 with SMTP id f14-20020adfdb4e000000b003093b9add55mr1238984wrj.10.1684339516095; Wed, 17 May 2023 09:05:16 -0700 (PDT) From: Alexey Gladkov To: make-initrd@lists.altlinux.org Date: Wed, 17 May 2023 18:04:39 +0200 Message-Id: X-Mailer: git-send-email 2.33.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [make-initrd] [PATCH 0/3] New locking functions based on flock utility X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 May 2023 16:05:19 -0000 Archived-At: List-Archive: Привет! Чтобы избавиться от лишнего поллинга в реализации блокировок я сделал другой API основанный на flock из busybox. Добавилась возможность делать shared locks. Я не стал использовать bash-builtin-lockf, который использует hasher, потому что не хочу завязываться на версию bash и тянуть зависимость на bash-devel. Как следствие блокировка может утечь в запускаемый под блокировкой код и теперь за этим нужно следить. Далее нужно будет провести рефакторинг и посмотреть нельзя ли сократить код под блокировкой. Alexey Gladkov (3): runtime: Add locking functions based on flock utility Rewrite console locking feature/network: Use flock-based locking data/bin/rdshell | 12 ---- data/bin/rdshell-locked | 1 - data/bin/rdshell-sh-functions | 29 --------- data/bin/shell-locks | 40 ++++++++++++ data/etc/rc.d/init.d/cmdline | 2 - data/etc/rc.d/rc | 15 +++-- data/lib/initrd/boot/scripts/console-inactive | 7 +-- data/lib/initrd/spawn-shell | 7 ++- data/lib/uevent/each/pre/.gitignore | 0 data/lib/uevent/each/pre/console | 25 -------- data/lib/uevent/handlers/poll/400-rootdelay | 21 ++++--- .../lib/initrd/boot/method/bootloader/action | 18 +++--- .../data/lib/uevent/handlers/040-mountdev | 13 ++-- .../luks/data/lib/uevent/handlers/085-luks | 11 ++-- .../network/data/etc/rc.d/init.d/network-up | 10 +++ features/network/data/lib/network/config | 8 --- features/network/data/lib/network/hostname | 10 +-- features/network/data/lib/network/resolvconf | 10 +-- .../network/data/lib/network/udhcpc4.script | 12 ++-- .../data/lib/uevent/handlers/040-sshfsroot | 13 ++-- .../zfs/data/lib/uevent/extenders/200-zfs | 12 ++-- testing/sh-functions | 4 +- testing/units/runtime-locks/ts0001/expect | 24 ++++++++ testing/units/runtime-locks/ts0001/lock-1 | 0 testing/units/runtime-locks/ts0001/lock-2 | 0 testing/units/runtime-locks/ts0001/lock-3 | 0 testing/units/runtime-locks/ts0001/run | 61 +++++++++++++++++++ testing/units/runtime-locks/ts0002/expect | 5 ++ testing/units/runtime-locks/ts0002/lock-1 | 0 testing/units/runtime-locks/ts0002/lock-2 | 0 testing/units/runtime-locks/ts0002/lock-3 | 0 testing/units/runtime-locks/ts0002/run | 25 ++++++++ testing/units/runtime-locks/ts0003/expect | 9 +++ testing/units/runtime-locks/ts0003/lock-1 | 0 testing/units/runtime-locks/ts0003/lock-2 | 0 testing/units/runtime-locks/ts0003/lock-3 | 0 testing/units/runtime-locks/ts0003/run | 38 ++++++++++++ .../units/sort-services/ts0007/data00-cmdline | 2 - .../units/sort-services/ts0008/data00-cmdline | 2 - 39 files changed, 283 insertions(+), 163 deletions(-) delete mode 120000 data/bin/rdshell-locked delete mode 100644 data/bin/rdshell-sh-functions create mode 100644 data/bin/shell-locks create mode 100644 data/lib/uevent/each/pre/.gitignore delete mode 100755 data/lib/uevent/each/pre/console create mode 100644 testing/units/runtime-locks/ts0001/expect create mode 100644 testing/units/runtime-locks/ts0001/lock-1 create mode 100644 testing/units/runtime-locks/ts0001/lock-2 create mode 100644 testing/units/runtime-locks/ts0001/lock-3 create mode 100755 testing/units/runtime-locks/ts0001/run create mode 100644 testing/units/runtime-locks/ts0002/expect create mode 100644 testing/units/runtime-locks/ts0002/lock-1 create mode 100644 testing/units/runtime-locks/ts0002/lock-2 create mode 100644 testing/units/runtime-locks/ts0002/lock-3 create mode 100755 testing/units/runtime-locks/ts0002/run create mode 100644 testing/units/runtime-locks/ts0003/expect create mode 100644 testing/units/runtime-locks/ts0003/lock-1 create mode 100644 testing/units/runtime-locks/ts0003/lock-2 create mode 100644 testing/units/runtime-locks/ts0003/lock-3 create mode 100755 testing/units/runtime-locks/ts0003/run -- 2.33.8