调整 239 start 清除int端点时可能导致死锁的问题

This commit is contained in:
13038267101 2023-05-20 11:13:33 +08:00
parent b897d55b56
commit 9bc22b1f13
2 changed files with 5 additions and 17 deletions

View File

@ -2631,11 +2631,11 @@ void hg_scanner::init_settings(const char* json_setting_text)
p_time = from_default_language(OPTION_VALUE_XMSJ_SFZ);
else if (val > 600 && val <= 1800)
p_time = from_default_language(OPTION_VALUE_XMSJ_BXS);
else if (val > 600 && val <= 3600)
else if (val > 1800 && val <= 3600)
p_time = from_default_language(OPTION_VALUE_XMSJ_YXS);
else if (val > 600 && val <= 7200)
else if (val > 3600 && val <= 7200)
p_time = from_default_language(OPTION_VALUE_XMSJ_LXS);
else if (val > 600 && val <= 14400)
else if (val > 7200 && val <= 14400)
p_time = from_default_language(OPTION_VALUE_XMSJ_SXS);
if (p_time)
setting_jsn_.at(from_default_language(SANE_STD_OPT_NAME_TIME_TO_SLEEP)).at("default") = p_time;

View File

@ -678,23 +678,13 @@ int hg_scanner_239::discard_all_images(void)
ret = SCANNER_ERR_OK;
string str;
str.resize(block);
//{
// std::lock_guard<std::mutex> lock(io_lock_);
// while (ret == SCANNER_ERR_OK)
// {
// ret = io_->read_bulk(&str[0], &block);
// }
//}
{
std::lock_guard<std::mutex> lock(io_lock_);
char buf[64];
int size = sizeof(buf);
ret = SCANNER_ERR_OK;
setting3399::HGEIntInfo* info = (setting3399::HGEIntInfo*)buf;
{
std::lock_guard<std::mutex> lock(io_lock_);
if (!io_)
{
return 0;
@ -717,12 +707,10 @@ int hg_scanner_239::discard_all_images(void)
size = sizeof(buf);
{
std::lock_guard<std::mutex> lock(io_lock_);
ret = io_->read_interrupt(buf, &size);
}
}
{
io_->set_timeout(oto);
}
}
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
if (!io_)