- Timestamp:
- 10/11/21 14:41:56 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/manager/services_manager.cpp
r1764 r2246 7 7 #include "server.hpp" 8 8 #include "servers_ressource.hpp" 9 #include "timer.hpp" 9 10 10 11 namespace xios … … 55 56 int poolSize ; 56 57 58 info(40)<<"CServicesManager : waiting for pool info : "<<poolId<<endl ; ; 57 59 bool ok=CXios::getRessourcesManager()->getPoolInfo(poolId, poolSize, leader) ; 58 60 if (wait) … … 67 69 if (ok) 68 70 { 71 info(40)<<"CServicesManager : create service notification to leader "<<leader<<", serviceId : "<<serviceId<<", size : "<<size<<endl ; 69 72 createServicesNotify(leader, serviceId, type, size, nbPartitions) ; 70 73 return true ; … … 94 97 { 95 98 auto info = notifications_.front() ; 99 xios::info(40)<<"CServicesManager : receive create service notification : "<<get<0>(info)<<endl ; 96 100 CServer::getServersRessource()->getPoolRessource()->createService(get<0>(info), get<1>(info), get<2>(info), get<3>(info)) ; 97 101 notifications_.pop_front() ; … … 104 108 void CServicesManager::eventLoop(void) 105 109 { 106 checkCreateServicesNotification() ; 110 CTimer::get("CServicesManager::eventLoop").resume(); 111 double time=MPI_Wtime() ; 112 if (time-lastEventLoop_ > eventLoopLatency_) 113 { 114 checkCreateServicesNotification() ; 115 lastEventLoop_=time ; 116 } 117 CTimer::get("CServicesManager::eventLoop").suspend(); 107 118 } 108 119 … … 176 187 { 177 188 189 info(40)<<"CServicesManager : registering service, poolId : "<<poolId<<", serviceId : "<<serviceId<<endl ; ; 190 191 winServices_->lockWindowExclusive(managerGlobalLeader_) ; 192 winServices_->updateFromLockedWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 193 winServices_->flushWindow(managerGlobalLeader_) ; 194 services_[std::tuple<std::string, std::string,int>(poolId,serviceId,partitionId)]=std::make_tuple(type,size,nbPartitions,leader) ; 195 winServices_->updateToLockedWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpOut) ; 196 winServices_->unlockWindow(managerGlobalLeader_) ; 197 198 /* 178 199 winServices_->lockWindow(managerGlobalLeader_,0) ; 179 200 winServices_->updateFromWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 180 201 services_[std::tuple<std::string, std::string,int>(poolId,serviceId,partitionId)]=std::make_tuple(type,size,nbPartitions,leader) ; 181 202 winServices_->updateToWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpOut) ; 182 winServices_->unlockWindow(managerGlobalLeader_,0) ; 203 winServices_->unlockWindow(managerGlobalLeader_,0) ;*/ 183 204 } 184 205 … … 186 207 int& size, int& nbPartitions, int& leader) 187 208 { 209 210 winServices_->lockWindowShared(managerGlobalLeader_) ; 211 winServices_->updateFromLockedWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 212 winServices_->unlockWindow(managerGlobalLeader_) ; 213 /* 188 214 winServices_->lockWindow(managerGlobalLeader_,0) ; 189 215 winServices_->updateFromWindow(managerGlobalLeader_, this, &CServicesManager::servicesDumpIn) ; 190 winServices_->unlockWindow(managerGlobalLeader_,0) ; 216 winServices_->unlockWindow(managerGlobalLeader_,0) ;*/ 191 217 192 218 auto it=services_.find(std::tuple<std::string,std::string,int>(poolId,serviceId,partitionId)) ;
Note: See TracChangeset
for help on using the changeset viewer.