Application::Messages* Application::ThreadMessages::operator ->() { std::unique_lock<std::mutex> msgLock(msg_mutex); std::thread::id curId = std::this_thread::get_id(); auto iter = m_threadMsgMap.find(curId); if (iter != m_threadMsgMap.end()) { return iter->second.get(); } pMessages_t pMsgs(new Messages()); m_threadMsgMap.insert({curId, pMsgs}); return pMsgs.get(); }
Application::Messages* Application::ThreadMessages::operator ->() { ScopedLock msgLock(msg_mutex); cthreadId_t curId = getThisThreadId() ; threadMsgMap_t::iterator iter = m_threadMsgMap.find(curId) ; if (iter != m_threadMsgMap.end()) { return iter->second.get(); } pMessages_t pMsgs(new Messages()) ; m_threadMsgMap.insert(std::pair< cthreadId_t, pMessages_t >(curId, pMsgs)) ; return pMsgs.get() ; }