From ad716fb9f1e8ae5cde818be423ca47225a4ff4ec Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 11 四月 2019 11:16:29 +0800
Subject: [PATCH] VptServer多线程支持

---
 QiaoJiaSystem/VptServer/VptServerI.cpp |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/QiaoJiaSystem/VptServer/VptServerI.cpp b/QiaoJiaSystem/VptServer/VptServerI.cpp
index c8b3361..e08fa75 100644
--- a/QiaoJiaSystem/VptServer/VptServerI.cpp
+++ b/QiaoJiaSystem/VptServer/VptServerI.cpp
@@ -9,13 +9,25 @@
 VptServerI::VptServerI() {}
 
 VptServerI::~VptServerI() {
-
+    for (auto item_ptr : m_map_vptDetectWrapper) {
+        if (item_ptr.second != nullptr) {
+            delete item_ptr.second;
+            item_ptr.second = nullptr;
+        }
+        m_map_vptDetectWrapper.erase(item_ptr.first);
+    }
 }
 
 VptDetect::ObjInfos
 VptServerI::VptDetect(Ice::Int width, Ice::Int height, const ::std::string &shM,
                       const ::Ice::Current &current) {
 
+    thread::id key = std::this_thread::get_id();
+    if (m_map_vptDetectWrapper.find(key) == m_map_vptDetectWrapper.end()) {
+        m_map_vptDetectWrapper[key] = new VptDetectWrapper();
+    }
+    VptDetectWrapper &m_vptDetectWrapper = *m_map_vptDetectWrapper[key];
+
     VptDetect::ObjInfos objInfos;
     QSharedMemory shareMemory(QString(shM.c_str()));
     if (shareMemory.attach()) {

--
Gitblit v1.8.0