NoPaste

locking_test_script

von heisenberg

SNIPPET_TEXT:
  1. #!/bin/bash
  2.  
  3. run_locked_simple_lock() {
  4.  
  5.         while ! ./increment_number_simple_lock ;do
  6.                 :
  7.         done
  8. }
  9.  
  10. run_locked_flock() {
  11.  
  12.         while ! ./increment_number_flock ;do
  13.                 :
  14.         done
  15. }
  16.  
  17. # --- start test ---
  18.  
  19. echo
  20.  
  21. # write sequentially for testing with simple_lock
  22. echo 0 >data.txt
  23. rm -f ./bla-lock
  24. for ((i=1;i<=100;i++));do
  25.         ./increment_number_simple_lock
  26. done
  27. echo "Data Value after 100 sequential executions with simple lock: $(cat data.txt)"
  28.  
  29. # write sequentially for testing with flock
  30. echo 0 > data.txt
  31. for ((i=1;i<=100;i++));do
  32.         ./increment_number_flock
  33. done
  34. echo "Data Value after 100 sequential executions with flock:       $(cat data.txt)"
  35.  
  36.  
  37. echo
  38. # write parallel for testing with simple_lock
  39. echo 0 > data.txt
  40. rm -f ./bla-lock
  41. {
  42. for ((i=1;i<=100;i++));do
  43.         run_locked_simple_lock &
  44. done
  45. } >/dev/null 2>&1
  46. wait
  47. echo "Data Value after 100 parallel executions with simple lock:   $(printf "%3d" $(cat data.txt))"
  48.  
  49. # write parallel for testing with simple_lock
  50. echo 0 > data.txt
  51. {
  52. for ((i=1;i<=100;i++));do
  53.         run_locked_flock &
  54. done
  55. } >/dev/null 2>&1
  56. wait
  57. echo "Data Value after 100 parallel executions with flock          $(cat data.txt)"
  58. echo

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN