Changeset 2493
- Timestamp:
- 04/21/23 20:51:36 (15 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/dev/XIOS_ATTACHED/src/manager/services_manager.cpp
r2489 r2493 227 227 int leader ; 228 228 229 services_.clear() ;230 229 int nbServices ; 231 230 buffer>>nbServices ; 231 bool newServices = nbServices != services_.size() ; 232 233 services_.clear() ; 234 232 235 for(int i=0;i<nbServices;i++) 233 236 { 234 237 buffer>>poolId>>serviceId>>partitionId>>type>>size>>nbPartitions>>leader ; 235 238 services_[std::tuple<std::string,std::string,int>(poolId,serviceId,partitionId)]=std::make_tuple(type,size,nbPartitions,leader) ; 239 if (newServices) 240 info(40)<<"Receive new services informations : "<<poolId<<"::"<<serviceId<<"::"<<partitionId<<" => type : "<<type<<" size : "<<size<<" nbPartitions : "<<nbPartitions<<" leader : "<<leader<<endl ; 236 241 } 237 242 } … … 255 260 int& size, int& nbPartitions, int& leader, bool wait) 256 261 { 257 258 262 winServices_->lockWindowShared(managerGlobalLeader_) ; 259 263 winServices_->updateFromLockedWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 260 264 winServices_->unlockWindow(managerGlobalLeader_) ; 261 265 266 if (wait) waitServiceRegistration(poolId, serviceId, partitionId) ; 262 267 auto it=services_.find(std::tuple<std::string,std::string,int>(poolId,serviceId,partitionId)) ; 263 if ( it == services_.end() && !wait) return false ;268 if ( it == services_.end()) return false ; 264 269 else 265 270 { 266 if (wait) waitServiceRegistration(poolId, serviceId, partitionId) ;267 271 type= std::get<0>(it->second); 268 272 size= std::get<1>(it->second); … … 299 303 bool CServicesManager::hasService(const std::string& poolId, const std::string& serviceId, const int& partitionId) 300 304 { 301 winServices_->lockWindow (managerGlobalLeader_,0) ;302 winServices_->updateFrom Window(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ;303 winServices_->unlockWindow(managerGlobalLeader_ ,0) ;305 winServices_->lockWindowShared(managerGlobalLeader_) ; 306 winServices_->updateFromLockedWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 307 winServices_->unlockWindow(managerGlobalLeader_) ; 304 308 auto it=services_.find(std::tuple<std::string, std::string, int>(poolId, serviceId, partitionId)) ; 305 309 if ( it == services_.end()) return false ;
Note: See TracChangeset
for help on using the changeset viewer.