Ignore:
Timestamp:
08/29/23 17:24:04 (10 months ago)
Author:
ymipsl
Message:

Major update :

  • New method to lock and unlock one-sided windows (window_dynamic) to avoid network overhead
  • Introducing multithreading on server sided to manage more efficiently dead-lock occuring (similar to co-routine which will be available and implemented in futur c++ standard), based on c++ threads
  • Suprression of old "attached mode" which is replaced by online writer and reder filters

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/node/pool_node.cpp

    r2458 r2547  
    11#include "pool_node.hpp" 
    22#include "cxios.hpp" 
     3#include "thread_manager.hpp" 
    34#include<cmath> 
    45 
     
    6162    else ERROR("void CPoolNode::allocateRessources(void)",<<"Pool has no name or id, attributes <id> or <name> must be specified") 
    6263    ressourcesManager->createPool(poolId, nbRessources) ; 
    63     ressourcesManager->waitPoolRegistration(poolId) ; 
     64    if (CThreadManager::isUsingThreads())  
     65      while(!ressourcesManager->hasPool(CXios::defaultPoolId))  
     66      { 
     67        CXios::getDaemonsManager()->eventLoop() ; 
     68        CThreadManager::yield() ; 
     69      } 
     70    else ressourcesManager->waitPoolRegistration(poolId) ; 
    6471    auto services=this->getAllServiceNodes() ; 
    6572    for(auto& service : services) service->allocateRessources(poolId) ; 
Note: See TracChangeset for help on using the changeset viewer.