Changeset 2570
- Timestamp:
- 09/18/23 11:12:40 (16 months ago)
- Location:
- XIOS3/trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk/src/event_scheduler.cpp
r2569 r2570 92 92 checkEvent_() ; 93 93 } 94 cleanSplitSchedulers();95 94 } 96 95 -
XIOS3/trunk/src/event_scheduler.hpp
r2569 r2570 61 61 void setChildScheduler(shared_ptr<CEventScheduler> childScheduler) { childScheduler_ = childScheduler ;} 62 62 void splitScheduler(const MPI_Comm& splittedComm, shared_ptr<CEventScheduler>& parent, shared_ptr<CEventScheduler>& child) ; 63 void cleanSplitSchedulers(); 63 64 64 65 //! Public interface to give the hand to the instance to check pending or incoming message. … … 71 72 private: 72 73 void initialize(const MPI_Comm& comm) ; 73 void cleanSplitSchedulers();74 74 75 75 //! Send an event to the parent of level `lev+1` -
XIOS3/trunk/src/manager/pool_ressource.cpp
r2547 r2570 429 429 CPoolRessource::~CPoolRessource() 430 430 { 431 freeRessourceEventScheduler_->cleanSplitSchedulers(); 431 432 delete winNotify_ ; 432 433 for(auto& service : services_) delete service.second ; -
XIOS3/trunk/src/manager/window_base.cpp
r2517 r2570 1 1 #include "window_base.hpp" 2 #include "cxios.hpp" 2 3 3 4 namespace xios 4 5 { 6 CWindowBase::CWindowBase(MPI_Comm winComm, size_t bufferSize) 7 { 8 bufferSize_ = bufferSize ; 9 windowSize_ = bufferSize_ + OFFSET_BUFFER ; 10 MPI_Win_allocate(windowSize_, 1, MPI_INFO_NULL, winComm, &winBuffer_, &window_) ; 11 CXios::getMpiGarbageCollector().registerWindow(window_) ; 12 MPI_Aint& lock = *((MPI_Aint*)((char*)winBuffer_+OFFSET_LOCK)) ; 13 lock=0 ; 14 MPI_Win_lock_all(0, window_) ; 15 MPI_Barrier(winComm) ; 16 } 5 17 6 18 -
XIOS3/trunk/src/manager/window_base.hpp
r2547 r2570 24 24 public : 25 25 26 CWindowBase(MPI_Comm winComm, size_t bufferSize) 27 { 28 bufferSize_ = bufferSize ; 29 windowSize_ = bufferSize_ + OFFSET_BUFFER ; 30 MPI_Win_allocate(windowSize_, 1, MPI_INFO_NULL, winComm, &winBuffer_, &window_) ; 31 MPI_Aint& lock = *((MPI_Aint*)((char*)winBuffer_+OFFSET_LOCK)) ; 32 lock=0 ; 33 MPI_Win_lock_all(0, window_) ; 34 MPI_Barrier(winComm) ; 35 } 26 CWindowBase(MPI_Comm winComm, size_t bufferSize); 36 27 37 28 bool tryLockExclusive(int rank) … … 152 143 { 153 144 MPI_Win_unlock_all(window_); 154 MPI_Win_free(&window_) ;155 145 } 156 146
Note: See TracChangeset
for help on using the changeset viewer.