diff options
Diffstat (limited to 'lib/mutex.sh')
-rw-r--r-- | lib/mutex.sh | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/lib/mutex.sh b/lib/mutex.sh deleted file mode 100644 index fb96e66..0000000 --- a/lib/mutex.sh +++ /dev/null @@ -1,57 +0,0 @@ -# Functions for locking and unlocking mutex objects -# -# Copyright (C) 2014 Patrick "P. J." McDermott -# -# This file is part of the ProteanOS Development Kit. -# -# The ProteanOS Development Kit is free software: you can redistribute -# it and/or modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# The ProteanOS Development Kit is distributed in the hope that it -# will be useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with the ProteanOS Development Kit. If not, see -# <http://www.gnu.org/licenses/>. - -[ "x${_MUTEX_SM+set}" = 'xset' ] && return 0 -_MUTEX_SM=1 - -mutex_trylock() -{ - local mutex="${1}" - - (set -C; printf '%d\n' "${$}" >"${mutex}") 2>/dev/null -} - -mutex_timedlock() -{ - local mutex="${1}" - local timeout="${2}" - - while ! mutex_trylock "${mutex}"; do - [ ${timeout} -eq 0 ] && return 1 - timeout=$(($timeout - 1)) - sleep 1 - done - - return 0 -} - -mutex_unlock() -{ - local mutex="${1}" - - rm "${mutex}" -} - -mutex_is_unlockable() -{ - local mutex="${1}" - - [ "x$(cat "${mutex}" 2>/dev/null)" = "x${$}" ] -} |