Changeset 2507 for XIOS3/trunk/src/manager
- Timestamp:
- 06/01/23 10:58:08 (13 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk/src/manager/services_manager.cpp
r2498 r2507 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() ; 232 234 233 235 for(int i=0;i<nbServices;i++) … … 235 237 buffer>>poolId>>serviceId>>partitionId>>type>>size>>nbPartitions>>leader ; 236 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 ; 237 241 } 238 242 } … … 256 260 int& size, int& nbPartitions, int& leader, bool wait) 257 261 { 258 259 262 winServices_->lockWindowShared(managerGlobalLeader_) ; 260 263 winServices_->updateFromLockedWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 261 264 winServices_->unlockWindow(managerGlobalLeader_) ; 262 265 266 if (wait) waitServiceRegistration(poolId, serviceId, partitionId) ; 263 267 auto it=services_.find(std::tuple<std::string,std::string,int>(poolId,serviceId,partitionId)) ; 264 if ( it == services_.end() && !wait) return false ;268 if ( it == services_.end()) return false ; 265 269 else 266 270 { 267 if (wait) waitServiceRegistration(poolId, serviceId, partitionId) ;268 271 type= std::get<0>(it->second); 269 272 size= std::get<1>(it->second); … … 279 282 int size ; 280 283 int nbPartitions; 281 //return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader, wait) ; 282 return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader) ; 284 return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader, wait) ; 283 285 } 284 286 … … 288 290 int nbPartitions; 289 291 int leader; 290 //return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader, wait) ; 291 return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader) ; 292 return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader, wait) ; 292 293 } 293 294 … … 297 298 int type; 298 299 int leader; 299 //return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader, wait) ; 300 return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader) ; 300 return getServiceInfo(poolId, serviceId, partitionId, type, size, nbPartitions, leader, wait) ; 301 301 } 302 302 303 303 bool CServicesManager::hasService(const std::string& poolId, const std::string& serviceId, const int& partitionId) 304 304 { 305 winServices_->lockWindow (managerGlobalLeader_,0) ;306 winServices_->updateFrom Window(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ;307 winServices_->unlockWindow(managerGlobalLeader_ ,0) ;305 winServices_->lockWindowShared(managerGlobalLeader_) ; 306 winServices_->updateFromLockedWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 307 winServices_->unlockWindow(managerGlobalLeader_) ; 308 308 auto it=services_.find(std::tuple<std::string, std::string, int>(poolId, serviceId, partitionId)) ; 309 309 if ( it == services_.end()) return false ;
Note: See TracChangeset
for help on using the changeset viewer.