Commit f340e7ffb2e98ce20c87c24f5325bef26d8040c5
1 parent
940c8179
将由运行时库来清理线程,修改为由代码主动结束线程,避免可能的资源浪费
Showing
2 changed files
with
11 additions
and
5 deletions
tsl_aiplatform/reprocessing_module/save_snapshot_reprocessing.cpp
... | ... | @@ -10,6 +10,7 @@ const bool DRAW_ON_IMG = false; |
10 | 10 | |
11 | 11 | vector<int> compression_params; |
12 | 12 | DWORD save_image_thread_process(LPVOID param); |
13 | +bool bFinish = false; | |
13 | 14 | |
14 | 15 | map<int, algo_type> index_to_algo_type = {{0, algorithm_type_t::HUMAN_SNAPSHOT}, |
15 | 16 | {1, algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT}, |
... | ... | @@ -35,14 +36,18 @@ save_snapshot_reprocessing::save_snapshot_reprocessing() { |
35 | 36 | _task_param_manager = task_param_manager::getInstance(); |
36 | 37 | |
37 | 38 | bFinish = false; |
38 | - auto m_save_ss_thread = std::thread(save_image_thread_process, this); | |
39 | - m_save_ss_thread.detach(); | |
39 | + m_save_ss_thread = std::thread(save_image_thread_process, this); | |
40 | + // m_save_ss_thread.detach(); | |
40 | 41 | } |
41 | 42 | |
42 | -// 释放资源 | |
43 | -void save_snapshot_reprocessing::save_snapshot_reprocessing_release() { | |
43 | +save_snapshot_reprocessing::~save_snapshot_reprocessing(){ | |
44 | 44 | // 结束线程 |
45 | 45 | bFinish = true; |
46 | + m_save_ss_thread.join(); | |
47 | +} | |
48 | + | |
49 | +// 释放资源 | |
50 | +void save_snapshot_reprocessing::save_snapshot_reprocessing_release() { | |
46 | 51 | |
47 | 52 | std::unique_lock<std::mutex> l(waitforsave_image_queue_mutex); |
48 | 53 | ... | ... |
tsl_aiplatform/reprocessing_module/save_snapshot_reprocessing.h
... | ... | @@ -55,6 +55,7 @@ class save_snapshot_reprocessing : public base_reprocessing_unit |
55 | 55 | { |
56 | 56 | public: |
57 | 57 | save_snapshot_reprocessing(); |
58 | + ~save_snapshot_reprocessing(); | |
58 | 59 | void save_snapshot_reprocessing_release(); |
59 | 60 | |
60 | 61 | void add_newtask(const string taskid); |
... | ... | @@ -82,7 +83,7 @@ public: |
82 | 83 | // map<OBJ_KEY, int> save_snapshot_info_count; // debug by zsh |
83 | 84 | mutable std::mutex waitforchange_taskid_mutex; |
84 | 85 | |
85 | - bool bFinish{false}; | |
86 | + std::thread m_save_ss_thread; | |
86 | 87 | |
87 | 88 | #ifdef POST_USE_RABBITMQ |
88 | 89 | callback_t callback_; | ... | ... |