Ignore:
Timestamp:
11/25/21 18:25:19 (3 years ago)
Author:
ymipsl
Message:

tracking memory leak : remove context and all related object from object factory when context is finalized.
YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src/node
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/calendar_wrapper.hpp

    r1542 r2265  
    8282  }; // class CCalendarWrapper 
    8383 
     84  typedef CCalendarWrapper CCalendarWrapperGroup; 
    8485  typedef CCalendarWrapper CCalendarWrapperDefinition; 
    8586} // namespace xios 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/context.cpp

    r2258 r2265  
    289289   CATCH 
    290290 
     291void CContext::removeContext(const string& contextId) 
     292{ 
     293  #define DECLARE_NODE(Name_, name_)     CObjectFactory::deleteContext< C##Name_ >(contextId); 
     294  #define DECLARE_NODE_PAR(Name_, name_) CObjectFactory::deleteContext< C##Name_ >(contextId); 
     295  #include "node_type.conf" 
     296  #define DECLARE_NODE(Name_, name_)     CObjectFactory::deleteContext< C##Name_##Group >(contextId); 
     297  #define DECLARE_NODE_PAR(Name_, name_)  
     298  #include "node_type.conf" 
     299 
     300/* 
     301  #define DECLARE_NODE(Name_, name_)     CObjectFactory::dumpObjects< C##Name_##Group >(); 
     302  #define DECLARE_NODE_PAR(Name_, name_)  
     303  #include "node_type.conf" 
     304 
     305  #define DECLARE_NODE(Name_, name_)     CObjectFactory::dumpObjects< C##Name_>(); 
     306  #define DECLARE_NODE_PAR(Name_, name_)  
     307  #include "node_type.conf" 
     308*/ 
     309} 
     310 
     311void CContext::removeAllContexts(void) 
     312{ 
     313  #define DECLARE_NODE(Name_, name_)     CObjectFactory::deleteAllContexts< C##Name_ >(); 
     314  #define DECLARE_NODE_PAR(Name_, name_) CObjectFactory::deleteAllContexts< C##Name_ >(); 
     315  #include "node_type.conf" 
     316  #define DECLARE_NODE(Name_, name_)     CObjectFactory::deleteAllContexts< C##Name_##Group >(); 
     317  #define DECLARE_NODE_PAR(Name_, name_)  
     318  #include "node_type.conf" 
     319/* 
     320  #define DECLARE_NODE(Name_, name_)     CObjectFactory::dumpObjects< C##Name_##Group >(); 
     321  #define DECLARE_NODE_PAR(Name_, name_)  
     322  #include "node_type.conf" 
     323 
     324  #define DECLARE_NODE(Name_, name_)     CObjectFactory::dumpObjects< C##Name_>(); 
     325  #define DECLARE_NODE_PAR(Name_, name_)  
     326  #include "node_type.conf" 
     327*/ 
     328} 
    291329   ///--------------------------------------------------------------- 
    292330 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/context.hpp

    r2209 r2265  
    246246        static void ShowTree(StdOStream & out = std::clog); 
    247247        static void CleanTree(void); 
     248        static void removeContext(const std::string& contextId); 
     249        static void removeAllContexts(void) ; 
    248250        int getServiceType(void) {return serviceType_;} 
    249251 
Note: See TracChangeset for help on using the changeset viewer.