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);