Server IP : 51.89.169.208 / Your IP : 216.73.216.211 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/share/zsh/5.5.1/functions/ |
Upload File : |
# Lock the given files. # Append the names of lockfiles to the array lockfiles. local file lockfile msgdone # Number of attempts to lock a file. Probably not worth stylising. integer lockattempts=4 loadtried # The lockfile name is not stylised: it has to be a fixed # derivative of the main fail. for file; do lockfile=$file.lockfile for (( i = 0; i <= lockattempts; i++ )); do if ln -s $file $lockfile >/dev/null 2>&1; then lockfiles+=($lockfile) break fi if zle && [[ -z $msgdone ]]; then msgdone="${lockfile}: waiting to acquire lock" zle -M $msgdone fi if (( ! loadtried )); then zmodload -i zsh/zselect 2>/dev/null (( loadtried = 1 )) fi if zmodload -e zsh/zselect; then # This gives us finer grained timing (100th second). # Randomize the sleep between .1 and 2 seconds so that # we are much less likely to have multiple instances # retrying at once. zselect -t $(( 10 + RANDOM * 190 / 32768 )) else sleep 1 fi done if [[ -n $msgdone ]]; then zle -M ${msgdone//?/ } msgdone= fi if [[ ${lockfiles[-1]} != $lockfile ]]; then msgdone="Failed to lock $file; giving up after $lockattempts attempts. Another instance of calendar may be using it. Delete $lockfiles if you believe this to be an error." if zle; then zle -M $msgdone else print $msgdone >&2 fi # The parent should take action to delete any lockfiles # already locked. Typically this won't be necessary, since # we will always lock the main calendar file first. return 1 fi done return 0