diff --git a/hgdriver/hgdev/scanner_manager.cpp b/hgdriver/hgdev/scanner_manager.cpp index bacb681..445177e 100644 --- a/hgdriver/hgdev/scanner_manager.cpp +++ b/hgdriver/hgdev/scanner_manager.cpp @@ -1056,7 +1056,13 @@ scanner_err hg_scanner_mgr::hg_scanner_start(scanner_handle h, void* async_event } scanner_err hg_scanner_mgr::hg_scanner_stop(scanner_handle h) { - return (scanner_err)SCAN_PTR(h)->stop(); + scanner_err err = (scanner_err)SCAN_PTR(h)->stop(); + + // call from APP, block when all working-threads stopped - added on 2023-10-18 when handled double-feeding in SANE + while (SCAN_PTR(h)->is_running() != hg_scanner::THREAD_RUNNING_IDLE) + std::this_thread::sleep_for(std::chrono::milliseconds(3)); + + return err; } scanner_err hg_scanner_mgr::hg_scanner_get_img_info(scanner_handle h, SANE_Parameters* bmi, long len) {