Ignore:
Timestamp:
06/12/23 11:52:10 (13 months ago)
Author:
ymipsl
Message:

New way to manage locks in window manager. Windows is locked with MPI_Win_lock_all at creation (shared mode), and lock is manage by software way in the class (using MPI_swap_and_compare and MPI_Fetch_op). We get in this case a better control of lock, with controled latency between each attemp of lock.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/manager/server_context.cpp

    r2274 r2517  
    160160  void CServerContext::sendNotification(int rank) 
    161161  { 
    162     winNotify_->lockWindowExclusive(rank) ; 
    163     winNotify_->pushToLockedWindow(rank, this, &CServerContext::notificationsDumpOut) ; 
    164     winNotify_->unlockWindow(rank) ; 
     162    winNotify_->pushToExclusiveWindow(rank, this, &CServerContext::notificationsDumpOut) ; 
    165163  } 
    166164 
     
    201199        int commRank ; 
    202200        MPI_Comm_rank(contextComm_, &commRank) ; 
    203         winNotify_->lockWindowExclusive(commRank) ; 
    204         winNotify_->popFromLockedWindow(commRank, this, &CServerContext::notificationsDumpIn) ; 
    205         winNotify_->unlockWindow(commRank) ; 
    206        
     201        winNotify_->popFromExclusiveWindow(commRank, this, &CServerContext::notificationsDumpIn) ; 
     202        
    207203        if (notifyInType_!= NOTIFY_NOTHING) 
    208204        { 
Note: See TracChangeset for help on using the changeset viewer.