blocking during stop() call until all worker-threads exit

This commit is contained in:
gb 2023-10-18 14:49:29 +08:00
parent a2002ac455
commit 13cb6ad835
1 changed files with 7 additions and 1 deletions

View File

@ -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) 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) scanner_err hg_scanner_mgr::hg_scanner_get_img_info(scanner_handle h, SANE_Parameters* bmi, long len)
{ {