void processMessages3() { ProcessMsgClass pmc(client); QThread t; pmc.moveToThread(&t); t.start(); sleep(10); }
ProducerManagerClientPtr ClientFactory::getProducerManagerClient(const std::string& zkAddress) { MCE_INFO("ClientFactory::getProducerManagerClient zkAddress " << zkAddress); std::map<std::string, ProducerManagerClientPtr>::iterator findIt; { boost::shared_lock<boost::shared_mutex> lock(producerManagerClientMaplock_); findIt = producerManagerClientMap_.find(zkAddress); if( findIt != producerManagerClientMap_.end() ){ return findIt->second; } } { boost::upgrade_lock<boost::shared_mutex> lock(producerManagerClientMaplock_); boost::upgrade_to_unique_lock<boost::shared_mutex> uniqueLock1(lock); findIt = producerManagerClientMap_.find(zkAddress); if( findIt != producerManagerClientMap_.end() ){ return findIt->second; } ProducerManagerClientPtr pmc(new ProducerManagerClient(zkAddress)); producerManagerClientMap_.insert(make_pair(zkAddress, pmc)); MCE_INFO("ClientFactory::getProducerManagerClient init new cachemanagerclient for zkAddress " << zkAddress); return pmc; } }