Commit c5950ce3d9958c3916013e934651cbbd820f11fb
1 parent
458962a0
修改任务结束的判断方式:任务全流程结束才算结束,避免重复利用task_id时,新创建任务会导致原未完成任务在算法处理中崩溃的问题
Showing
4 changed files
with
24 additions
and
17 deletions
src/ai_platform/MultiSourceProcess.cpp
... | ... | @@ -110,6 +110,8 @@ int CMultiSourceProcess::InitAlgorthim(tsl_aiplatform_param vptParam){ |
110 | 110 | |
111 | 111 | m_devId = vptParam.gpuid; |
112 | 112 | |
113 | + aclrtSetDevice(m_devId); | |
114 | + | |
113 | 115 | string models_dir = vptParam.models_dir; |
114 | 116 | |
115 | 117 | VPTProcess_PARAM vparam; |
... | ... | @@ -305,6 +307,9 @@ int CMultiSourceProcess::GetTaskStatus(const string taskID) { |
305 | 307 | |
306 | 308 | DecoderManager* pDecManager = DecoderManager::getInstance(); |
307 | 309 | |
310 | + std::lock_guard<std::mutex> l1(m_FinishedTaskMtx); | |
311 | + auto it = m_FinishedTaskMap.find(taskID); | |
312 | + | |
308 | 313 | std::vector<std::string> taskids; |
309 | 314 | std::vector<int> statues; |
310 | 315 | int sta = 0; |
... | ... | @@ -312,11 +317,11 @@ int CMultiSourceProcess::GetTaskStatus(const string taskID) { |
312 | 317 | taskids.emplace_back(taskID); |
313 | 318 | statues.emplace_back(2); |
314 | 319 | sta = 2; |
315 | - } else if(pDecManager->isRunning(taskID)){ | |
320 | + } else if(it != m_FinishedTaskMap.end()){ | |
316 | 321 | taskids.emplace_back(taskID); |
317 | 322 | statues.emplace_back(1); |
318 | 323 | sta = 1; |
319 | - } else if(pDecManager->isFinished(taskID)){ | |
324 | + } else if(it == m_FinishedTaskMap.end()){ | |
320 | 325 | taskids.emplace_back(taskID); |
321 | 326 | statues.emplace_back(0); |
322 | 327 | sta = 0; |
... | ... | @@ -1207,18 +1212,20 @@ void CMultiSourceProcess::timing_snapshot_thread(){ |
1207 | 1212 | // LOG_DEBUG("snapshot save path: {}", fpath_ori.c_str()); |
1208 | 1213 | |
1209 | 1214 | acldvppPicDesc *vpcDesc= acldvppCreatePicDesc(); |
1210 | - acldvppSetPicDescData(vpcDesc, devMem->getMem()); | |
1211 | - acldvppSetPicDescFormat(vpcDesc, PIXEL_FORMAT_YUV_SEMIPLANAR_420); | |
1212 | - acldvppSetPicDescWidth(vpcDesc, devMem->getWidth()); | |
1213 | - acldvppSetPicDescHeight(vpcDesc, devMem->getHeight()); | |
1214 | - acldvppSetPicDescWidthStride(vpcDesc, devMem->getWidthStride()); | |
1215 | - acldvppSetPicDescHeightStride(vpcDesc, devMem->getHeightStride()); | |
1216 | - acldvppSetPicDescSize(vpcDesc, devMem->getSize()); | |
1217 | - | |
1218 | - jpegUtil.jpeg_encode(vpcDesc, fpath_ori); | |
1219 | - | |
1220 | - acldvppDestroyPicDesc(vpcDesc); | |
1221 | - vpcDesc = nullptr; | |
1215 | + if(vpcDesc){ | |
1216 | + acldvppSetPicDescData(vpcDesc, devMem->getMem()); | |
1217 | + acldvppSetPicDescFormat(vpcDesc, PIXEL_FORMAT_YUV_SEMIPLANAR_420); | |
1218 | + acldvppSetPicDescWidth(vpcDesc, devMem->getWidth()); | |
1219 | + acldvppSetPicDescHeight(vpcDesc, devMem->getHeight()); | |
1220 | + acldvppSetPicDescWidthStride(vpcDesc, devMem->getWidthStride()); | |
1221 | + acldvppSetPicDescHeightStride(vpcDesc, devMem->getHeightStride()); | |
1222 | + acldvppSetPicDescSize(vpcDesc, devMem->getSize()); | |
1223 | + | |
1224 | + jpegUtil.jpeg_encode(vpcDesc, fpath_ori); | |
1225 | + | |
1226 | + acldvppDestroyPicDesc(vpcDesc); | |
1227 | + vpcDesc = nullptr; | |
1228 | + } | |
1222 | 1229 | |
1223 | 1230 | #ifdef POST_USE_RABBITMQ |
1224 | 1231 | auto json_str = helpers::gen_json::gen_vtsnapshot_json(task_id, fpath_ori); | ... | ... |
src/ai_platform/stl_aiplatform.cpp
... | ... | @@ -27,7 +27,7 @@ int add_mq_conn(void *handle, mq_type_t tstatus, rabbitmq_conn_params_t mq_conn_ |
27 | 27 | |
28 | 28 | #endif |
29 | 29 | |
30 | -int get_task_status(void *handle, char *task_id) | |
30 | +int get_task_status(void *handle, const char *task_id) | |
31 | 31 | { |
32 | 32 | CMultiSourceProcess* tools = (CMultiSourceProcess*)handle; |
33 | 33 | return tools->GetTaskStatus(task_id); | ... | ... |
src/ai_platform/stl_aiplatform.h
... | ... | @@ -46,7 +46,7 @@ extern "C" |
46 | 46 | #endif |
47 | 47 | |
48 | 48 | |
49 | - TSL_AIPLATFORM_API int get_task_status(void *handle, char *task_id); | |
49 | + TSL_AIPLATFORM_API int get_task_status(void *handle, const char *task_id); | |
50 | 50 | |
51 | 51 | /************************************************************************* |
52 | 52 | * FUNCTION: add_task | ... | ... |
src/decoder/interface/DecoderManager.cpp