From d4564f2b7efa20ea025b6918b012656927fd342a Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 30 Mar 2019 18:51:13 +0100 Subject: [PATCH] Drop old locking functions Signed-off-by: Michael Tremer --- src/functions/functions.device | 12 ++---- src/functions/functions.editor | 51 +++++++++-------------- src/functions/functions.firewall | 3 +- src/functions/functions.lock | 70 -------------------------------- 4 files changed, 26 insertions(+), 110 deletions(-) diff --git a/src/functions/functions.device b/src/functions/functions.device index 48f24403..f52eee5b 100644 --- a/src/functions/functions.device +++ b/src/functions/functions.device @@ -997,15 +997,11 @@ device_get_link_string() { } device_auto_configure_smp_affinity() { - assert [ $# -eq 1 ] - - local device=${1} - - if lock_acquire "smp-affinity" 60; then - device_set_smp_affinity ${device} auto + local device="${1}" + assert isset device - lock_release "smp-affinity" - fi + lock "smp-affinity" \ + device_set_smp_affinity "${device}" "auto" } device_set_smp_affinity() { diff --git a/src/functions/functions.editor b/src/functions/functions.editor index 6edac62a..8f0cc0bc 100644 --- a/src/functions/functions.editor +++ b/src/functions/functions.editor @@ -19,17 +19,6 @@ # # ############################################################################### -editor_cleanup() { - # Cleanup after a file was edited - assert [ $# -eq 2 ] - - local file=${1} - local temp_file=${2} - - lock_release "${file}.lock" - rm -f ${temp_file} -} - editor_find_best() { # Open a file with the best available editor assert [ $# -eq 1 ] @@ -62,31 +51,26 @@ editor_find_best() { } editor() { - # This function open a file for editing and take care of all preperation and postprocessing - assert [ $# -ge 1 ] + local file="${1}" + assert isset file - local file=${1} if [ ! -f ${file} ] || [ ! -w ${file} ]; then error "${file} is not valid file or is not writeable" return ${EXIT_ERROR} fi - local check_func=${2} + lock "${file}.lock" __editor "$@" +} - # check if the file is locked - if lock_exists "${file}.lock"; then - error "Cannot edit ${file} because it is locked" - return ${EXIT_ERROR} - fi +__editor() { + # This function open a file for editing and take care of all preperation and postprocessing + assert [ $# -ge 1 ] - # lock the file - if ! lock_acquire "${file}.lock"; then - error "Cannot lock file ${file}" - return ${EXIT_ERROR} - fi + local file="${1}" + local check_func="${2}" # create a temporary file - local temp_file=$(mktemp) + local temp_file="$(mktemp)" if ! [ -f "${temp_file}" ]; then error "Cannot create temporary file" @@ -98,21 +82,26 @@ editor() { # edit the file if ! editor_find_best "${temp_file}"; then error "Could not edit ${file}" - # cleanup - editor_cleanup "${file}" "${temp_file}" + + # Delete temporary file + file_delete "${temp_file}" + + return ${EXIT_ERROR} fi # run the check if we have one if isset check_func && ! editor_check "${check_func}" "${temp_file}"; then + # Delete temporary file + file_delete "${temp_file}" + return ${EXIT_ERROR} fi # copy the changes back cp -f "${temp_file}" "${file}" - # cleanup - editor_cleanup "${file}" "${temp_file}" - + # Delete temporary file + file_delete "${temp_file}" } editor_check() { diff --git a/src/functions/functions.firewall b/src/functions/functions.firewall index 347916ef..e22576b0 100644 --- a/src/functions/functions.firewall +++ b/src/functions/functions.firewall @@ -269,7 +269,8 @@ firewall_panic() { } firewall_lock_acquire() { - lock_acquire ${RUN_DIR}/.firewall_lock + # XXX DEPRECATED + #lock_acquire ${RUN_DIR}/.firewall_lock # Make sure the lock is released after the firewall # script has crashed or exited early. diff --git a/src/functions/functions.lock b/src/functions/functions.lock index 6295a22b..fd15e5e3 100644 --- a/src/functions/functions.lock +++ b/src/functions/functions.lock @@ -19,16 +19,6 @@ # # ############################################################################### -__lock_path() { - local name=${1} - - if [ "${name:0:1}" = "/" ]; then - echo "${name}" - else - echo "${LOCK_DIR}/network-${name}" - fi -} - lock() { local lock="${1}" shift @@ -65,63 +55,3 @@ lock() { exit ${ret} ) 9>${lock} || exit $? } - -lock_exists() { - local name=${1} - assert isset name - - local lockfile=$(__lock_path ${name}) - - if [ -e "${lockfile}" ]; then - return ${EXIT_TRUE} - else - return ${EXIT_FALSE} - fi -} - -lock_acquire() { - local name=${1} - assert isset name - - # timeout value in seconds - local timeout=${2} - - if ! isset timeout; then - timeout=0 - fi - - local lockfile=$(__lock_path ${name}) - - timeout=$(( ${timeout} * 4 )) - - log DEBUG "Acquiring lock '${name}'" - - # Wait until lock is available - while [ ${timeout} -gt 0 ] && [ -e "${lockfile}" ]; do - timeout=$(( ${timeout} - 1 )) - sleep 0.25 - done - - # If another lock still exists, we return an error - if [ -e "${lockfile}" ]; then - error "Could not acquire lock '${name}'" - return ${EXIT_ERROR} - fi - - # Write out pid to the lockfile and make sure that - # nobody else can access it. - echo "$$" > ${lockfile} - chmod 600 ${lockfile} -} - -lock_release() { - local name=${1} - assert isset name - - local lockfile=$(__lock_path ${name}) - - log DEBUG "Releasing lock '${name}'" - - # Remove the lockfile (okay if it does not exist). - rm -f ${lockfile} -} -- 2.39.2