#!/bin/bash run_locked_simple_lock() { while ! ./increment_number_simple_lock ;do : done } run_locked_flock() { while ! ./increment_number_flock ;do : done } # --- start test --- echo # write sequentially for testing with simple_lock echo 0 >data.txt rm -f ./bla-lock for ((i=1;i<=100;i++));do ./increment_number_simple_lock done echo "Data Value after 100 sequential executions with simple lock: $(cat data.txt)" # write sequentially for testing with flock echo 0 > data.txt for ((i=1;i<=100;i++));do ./increment_number_flock done echo "Data Value after 100 sequential executions with flock: $(cat data.txt)" echo # write parallel for testing with simple_lock echo 0 > data.txt rm -f ./bla-lock { for ((i=1;i<=100;i++));do run_locked_simple_lock & done } >/dev/null 2>&1 wait echo "Data Value after 100 parallel executions with simple lock: $(printf "%3d" $(cat data.txt))" # write parallel for testing with simple_lock echo 0 > data.txt { for ((i=1;i<=100;i++));do run_locked_flock & done } >/dev/null 2>&1 wait echo "Data Value after 100 parallel executions with flock $(cat data.txt)" echo