Ignore:
Timestamp:
12/01/21 16:52:24 (3 years ago)
Author:
ymipsl
Message:

tracking memory leak
Elements, views, and connectors are now managed with shared pointer.
YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/scatterer_connector.hpp

    r2118 r2267  
    2323      int remoteCommSize_ ; 
    2424 
    25       CLocalView* srcView_ ; 
    26       CDistributedView* dstView_ ; 
     25      shared_ptr<CLocalView> srcView_ ; 
     26      shared_ptr<CDistributedView> dstView_ ; 
    2727      map<int,int> nbSenders_ ; // number of participant when sending remote buffer 
    2828      int srcSize_ ; 
     
    3131    public: 
    3232 
    33     CScattererConnector(CLocalView* srcView, CDistributedView* dstView, MPI_Comm localComm, int remoteCommSize)  
     33    CScattererConnector(shared_ptr<CLocalView> srcView, shared_ptr<CDistributedView> dstView, MPI_Comm localComm, int remoteCommSize)  
    3434                       : srcView_(srcView), dstView_(dstView), localComm_(localComm), remoteCommSize_(remoteCommSize) {} 
    3535    void computeConnector(void) ; 
     
    147147 
    148148    template<typename T>  
    149     void transfer(int rank, CScattererConnector** connectors, int nConnectors, const T* input, T* output) 
     149    void transfer(int rank, shared_ptr<CScattererConnector>* connectors, int nConnectors, const T* input, T* output) 
    150150    { 
    151151      auto& connector = connector_[rank] ; // probably costly, find a better way to avoid the map 
     
    197197    } 
    198198 
    199     int getSrcSliceSize(CScattererConnector** connectors, int nConnectors)  
     199    int getSrcSliceSize(shared_ptr<CScattererConnector>* connectors, int nConnectors)  
    200200    { if (nConnectors==0) return srcSize_ ; else return srcSize_ * (*(connectors-1))->getSrcSliceSize(connectors-1,nConnectors-1) ; } 
    201201 
    202     int getDstSliceSize(int rank, CScattererConnector** connectors, int nConnectors)  
     202    int getDstSliceSize(int rank, shared_ptr<CScattererConnector>* connectors, int nConnectors)  
    203203    { if (nConnectors==0) return dstSize_[rank] ; else return dstSize_[rank] * (*(connectors-1))->getDstSliceSize(rank, connectors-1,nConnectors-1) ; } 
    204204 
Note: See TracChangeset for help on using the changeset viewer.