Instead of locking/unlocking it for every command.

Reduces the runtime for the dslstat/lucistat commands to ~66%.

Before:
real    0m 2.66s
user    0m 0.90s
sys     0m 1.76s

After:
real    0m 1.76s
user    0m 0.63s
sys     0m 1.13s

Signed-off-by: Andre Heider <[email protected]>
---
v2: bump PKG_RELEASE
v3: use flock style suggested by Jo, bump release in different patch

 .../files/lib/functions/lantiq_dsl.sh         | 35 ++++++++++---------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git 
a/package/network/utils/ltq-dsl-base/files/lib/functions/lantiq_dsl.sh 
b/package/network/utils/ltq-dsl-base/files/lib/functions/lantiq_dsl.sh
index 5842a7879f..1a28633c79 100755
--- a/package/network/utils/ltq-dsl-base/files/lib/functions/lantiq_dsl.sh
+++ b/package/network/utils/ltq-dsl-base/files/lib/functions/lantiq_dsl.sh
@@ -11,12 +11,8 @@ fi
 # Basic functions to send CLI commands to the vdsl_cpe_control daemon
 #
 dsl_cmd() {
-       killall -q -0 ${XDSL_CTRL} && (
-               lock /var/lock/dsl_pipe
-               echo "$@" > /tmp/pipe/dsl_cpe0_cmd
-               cat /tmp/pipe/dsl_cpe0_ack
-               lock -u /var/lock/dsl_pipe
-       )
+       echo "$@" > /tmp/pipe/dsl_cpe0_cmd
+       cat /tmp/pipe/dsl_cpe0_ack
 }
 dsl_val() {
        expr "$1" : '.*'$2'=\([-\.[:alnum:]]*\).*'
@@ -729,17 +725,22 @@ profile() {
 }
 
 dslstat() {
-       vendor
-       chipset
-       xtse
-       profile
-       line_state
-       errors
-       power_mode
-       latency_delay
-       data_rates
-       line_data
-       line_uptime
+       killall -q -0 ${XDSL_CTRL} || exit 1
+       (
+               flock -x 323
+
+               vendor
+               chipset
+               xtse
+               profile
+               line_state
+               errors
+               power_mode
+               latency_delay
+               data_rates
+               line_data
+               line_uptime
+       ) 323> /var/lock/dsl_pipe
 }
 
 lucistat() {
-- 
2.29.2


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to