From 4b893053a060ff7a61549e17cf937ae611de8356 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sat, 23 Jan 2016 13:32:52 +0100 Subject: [PATCH] param: Lock read operation --- src/modules/systemlib/param/param.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/systemlib/param/param.c b/src/modules/systemlib/param/param.c index 63c7fea86e..b1ef5f34ca 100644 --- a/src/modules/systemlib/param/param.c +++ b/src/modules/systemlib/param/param.c @@ -1042,15 +1042,21 @@ param_import_internal(int fd, bool mark_saved) int result = -1; struct param_import_state state; + param_bus_lock(true); if (bson_decoder_init_file(&decoder, fd, param_import_callback, &state)) { debug("decoder init failed"); + param_bus_lock(false); goto out; } + param_bus_lock(false); state.mark_saved = mark_saved; do { + param_bus_lock(true); result = bson_decoder_next(&decoder); + usleep(1); + param_bus_lock(false); } while (result > 0);