Changeset 2547 for XIOS3/trunk/src/transport/one_sided_context_client.cpp
- Timestamp:
- 08/29/23 17:24:04 (11 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk/src/transport/one_sided_context_client.cpp
r2399 r2547 22 22 \param [in] intraComm_ communicator of group client 23 23 \param [in] interComm_ communicator of group server 24 \cxtSer [in] cxtSer Pointer to context of server side. (It is only used in case of attached mode ).24 \cxtSer [in] cxtSer Pointer to context of server side. (It is only used in case of attached mode --> obsolete ). 25 25 */ 26 26 COneSidedContextClient::COneSidedContextClient(CContext* parent, MPI_Comm intraComm_, MPI_Comm interComm_, CContext* cxtSer) … … 30 30 31 31 pureOneSided=CXios::getin<bool>("pure_one_sided",false); // pure one sided communication (for test) 32 if (isAttachedModeEnabled()) pureOneSided=false ; // no one sided in attach mode 33 34 if (!isAttachedModeEnabled()) MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ; 32 33 MPI_Intercomm_merge(interComm_,false, &interCommMerged_) ; 35 34 36 35 MPI_Comm_split(intraComm_,clientRank,clientRank, &commSelf_) ; // for windows 37 36 eventScheduler_ = parent->getEventScheduler() ; 38 37 timeLine = 1; 39 38 } … … 109 108 { 110 109 if (CTimer::get("Blocking time").isSuspended()) CTimer::get("Blocking time").resume() ; 111 callGlobalEventLoop() ;110 yield() ; 112 111 } 113 112 } 114 113 if (!CTimer::get("Blocking time").isSuspended()) CTimer::get("Blocking time").suspend() ; 115 114 116 if (isAttachedModeEnabled()) // couldBuffer is always true in attached mode 117 { 118 while (checkBuffers(ranks)) callGlobalEventLoop() ; 119 120 CXios::getDaemonsManager()->scheduleContext(hashId_) ; 121 while (CXios::getDaemonsManager()->isScheduledContext(hashId_)) callGlobalEventLoop() ; 122 } 115 116 synchronize() ; 123 117 124 118 timeLine++; … … 137 131 locked_=false ; 138 132 } 133 134 void COneSidedContextClient::yield(void) 135 { 136 locked_=true ; 137 context_->yield() ; 138 locked_=false ; 139 } 140 141 void COneSidedContextClient::synchronize(void) 142 { 143 if (context_->getServiceType()!=CServicesManager::CLIENT) 144 { 145 locked_=true ; 146 context_->synchronize() ; 147 locked_=false ; 148 } 149 } 150 139 151 /*! 140 152 Make a new buffer for a certain connection to server with specific rank … … 271 283 bool COneSidedContextClient::isNotifiedFinalized(void) 272 284 { 273 if (isAttachedModeEnabled()) return true ;274 285 275 286 bool finalized = true;
Note: See TracChangeset
for help on using the changeset viewer.