From b78afdc9a0a4539289c683d632635ecc1383d915 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Mon, 4 Dec 2023 11:50:39 +0800 Subject: [PATCH] add lock on do_stop command --- hgdriver/hgdev/hg_scanner.cpp | 2 +- hgdriver/hgdev/hg_scanner_239.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index d892a9a..47d017e 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -4117,7 +4117,7 @@ int hg_scanner::wait_one_image_from_start(bool& handled) int ret = SCANNER_ERR_OK; handled = false; - if (!async_io_) // non-callback + if (!async_io_) // non-callback, async do this in upper level { while (is_running() != THREAD_RUNNING_IDLE) { diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 29bff56..792f7c9 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -1642,6 +1642,7 @@ int hg_scanner_239::do_start(void) int hg_scanner_239::do_stop(void) { int ret = SCANNER_ERR_OK; + std::lock_guard lock(io_lock_); ret = write_command(setting3399::SC_STOP); io_->set_timeout(500);