From 57eb55bcf348062b40fb0b48fcdc6161bbb0cf2b Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Fri, 29 Dec 2023 16:25:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=BB=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E6=96=87=E4=BB=B6=E6=97=B6=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/scanner/async_usb_host.cpp | 9 ++++++--- hgdriver/hgdev/scanner/scanner_handler.cpp | 4 ++++ hgdriver/hgdev/usb_manager.cpp | 6 ++++-- sdk/base/utils.cpp | 3 ++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/hgdriver/hgdev/scanner/async_usb_host.cpp b/hgdriver/hgdev/scanner/async_usb_host.cpp index 1dc6ff8..1c202ff 100644 --- a/hgdriver/hgdev/scanner/async_usb_host.cpp +++ b/hgdriver/hgdev/scanner/async_usb_host.cpp @@ -448,9 +448,12 @@ void async_usb_host::create_worker_threads(void) { thread_pump_task(); }; - worker_.start(thread_p, "async_usb_host::thread_pump_task"); - worker_.start(thread_w, "async_usb_host::thread_write_bulk"); - worker_.start(thread_r, "async_usb_host::thread_read_bulk"); + void(async_usb_host:: * p)(void) = &async_usb_host::thread_pump_task; + void(async_usb_host:: * r)(void) = &async_usb_host::thread_read_bulk; + void(async_usb_host:: * w)(void) = &async_usb_host::thread_write_bulk; + worker_.start(thread_p, "async_usb_host::thread_pump_task", *(void**)&p); + worker_.start(thread_w, "async_usb_host::thread_write_bulk", *(void**)&w); + worker_.start(thread_r, "async_usb_host::thread_read_bulk", *(void**)&r); #else thread_w_.reset(new std::thread(&async_usb_host::thread_write_bulk, this)); thread_r_.reset(new std::thread(&async_usb_host::thread_read_bulk, this)); diff --git a/hgdriver/hgdev/scanner/scanner_handler.cpp b/hgdriver/hgdev/scanner/scanner_handler.cpp index ee7ef77..1ce1f1f 100644 --- a/hgdriver/hgdev/scanner/scanner_handler.cpp +++ b/hgdriver/hgdev/scanner/scanner_handler.cpp @@ -656,7 +656,11 @@ int scanner_handler::file_transfer(const char* local_path, const char* remote_pa } } else + { utils::to_log(LOG_LEVEL_DEBUG, "Receive file - Roger result: %d\r\n", pack->data); + reply->release(); + reply = nullptr; + } cmd->trigger(); return reply; diff --git a/hgdriver/hgdev/usb_manager.cpp b/hgdriver/hgdev/usb_manager.cpp index 3d72319..7665ec0 100644 --- a/hgdriver/hgdev/usb_manager.cpp +++ b/hgdriver/hgdev/usb_manager.cpp @@ -182,7 +182,8 @@ usb_manager::usb_manager() : run_(true) { thread_notify_usb_event(); }; - usb_notify_thread_.start(tf, "usb_manager::thread_notify_usb_event"); + void(usb_manager:: * pnp)(void) = &usb_manager::thread_notify_usb_event; + usb_notify_thread_.start(tf, "usb_manager::thread_notify_usb_event", *(void**)&pnp); #else if (!usb_notify_thread_.get()) { @@ -279,7 +280,8 @@ void usb_manager::init_notify_thread() { thread_trigger_usb_event(); }; - usb_monitor_thread_.start(tf, "usb_manager::thread_trigger_usb_event"); + void(usb_manager:: * t)(void) = &usb_manager::thread_trigger_usb_event; + usb_monitor_thread_.start(tf, "usb_manager::thread_trigger_usb_event", *(void**)&t); #else if(!usb_monitor_thread_.get()) { diff --git a/sdk/base/utils.cpp b/sdk/base/utils.cpp index c6e9944..1167bbe 100644 --- a/sdk/base/utils.cpp +++ b/sdk/base/utils.cpp @@ -1958,6 +1958,7 @@ int shared_memory::write(const char* data, size_t len) // safe_thread safe_thread::safe_thread() : excep_que_("thread-exception") { + excep_que_.enable_wait_log(false); notify_thread_.reset(new std::thread(&safe_thread::thread_notify_exception, this)); } safe_thread::~safe_thread() @@ -1980,7 +1981,7 @@ void safe_thread::thread_worker(std::function func, std::string name { try { - utils::to_log(LOG_LEVEL_DEBUG, "+++ safe_thread of '%s(%p) - %p' is running ...\n", name.c_str(), addr, GetCurrentThreadId()); + utils::to_log(LOG_LEVEL_DEBUG, "+++ safe_thread of '%s(addr: %p) - id: %p' is running ...\n", name.c_str(), addr, GetCurrentThreadId()); func(); utils::to_log(LOG_LEVEL_DEBUG, "--- safe_thread of '%s - %p' exited.\n", name.c_str(), GetCurrentThreadId()); return;