@cryptotaxi247 / netdata-1 / commits / 8ef74ebfe

remove file if it is not a pipe; prefer read over builtin sleep; fallback to sleep if builtin sleep fails

Costa Tsaousis (ktsaou) committed May 26, 2018 at 16:54 UTC 8ef74ebfe059d8808276f7e72e26bbf5032fccaf
1 file changed +22 -5
plugins.d/loopsleepms.sh.inc
+22 -5
@@ -85,11 +85,12 @@ fi
85 # -----------------------------------------------------------------------------
86 # use read with timeout for sleep
87
88 -mysleep="mysleep_read"
88 +mysleep=""
89
90 mysleep_fifo="${NETDATA_CACHE_DIR-/tmp}/.netdata_bash_sleep_timer_fifo"
91 -[ ! -e "${mysleep_fifo}" ] && mkfifo "${mysleep_fifo}"
92 -[ ! -e "${mysleep_fifo}" ] && mysleep="sleep"
91 +[ -f "${mysleep_fifo}" ] && rm "${mysleep_fifo}"
92 +[ ! -p "${mysleep_fifo}" ] && mkfifo "${mysleep_fifo}"
93 +[ -p "${mysleep_fifo}" ] && mysleep="mysleep_read"
94
95 mysleep_read() {
96 read -t "${1}" <>"${mysleep_fifo}"
@@ -105,7 +106,18 @@ mysleep_read() {
106 # -----------------------------------------------------------------------------
107 # use bash loadable module for sleep
108
108 -if [ "$((BASH_VERSINFO[0] +0))" -ge 3 ]
109 +builtin_sleep() {
110 + builtin sleep "${1}"
111 + ret=$?
112 + if [ $ret -ne 0 ]
113 + then
114 + echo >&2 "$0: Cannot use builtin sleep for sleeping (return code ${ret})."
115 + mysleep="sleep"
116 + ${mysleep} "${1}"
117 + fi
118 +}
119 +
120 +if [ -z "${mysleep}" -a "$((BASH_VERSINFO[0] +0))" -ge 3 ]
121 then
122 # enable modules only for bash version 3+
123
@@ -120,7 +132,7 @@ if [ "$((BASH_VERSINFO[0] +0))" -ge 3 ]
132 then
133 if enable -f "${bash_modules_path}/${bash_module_sleep}" sleep 2>/dev/null
134 then
123 - mysleep="builtin sleep"
135 + mysleep="builtin_sleep"
136 #echo >&2 "$0: Using bash loadable ${bash_modules_path}/sleep for sleep"
137 break
138 fi
@@ -130,6 +142,11 @@ if [ "$((BASH_VERSINFO[0] +0))" -ge 3 ]
142 done
143 fi
144
145 +# -----------------------------------------------------------------------------
146 +# fallback to external sleep
147 +
148 +[ -z "${mysleep}" ] && mysleep="sleep"
149 +
150
151 # -----------------------------------------------------------------------------
152 # this function is used to sleep a fraction of a second