Ignore:
Timestamp:
11/28/16 14:02:54 (6 years ago)
Author:
rlacroix
Message:

The workflow is now triggered when using xios_recv_field for fields in read mode received from the servers.

Previously the workflow was triggered upon receiving the data which could cause deadlocks since there are no garanties that clients are receiving data at the same time.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/node/field.cpp

    r1003 r1006  
    800800       // Check if the data is to be read from a file 
    801801       else if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 
    802          instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(grid, 
    803                                                                                                      freq_offset.isEmpty() ? NoneDu : freq_offset)); 
     802         instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 
     803                                                                                                     freq_offset.isEmpty() ? NoneDu : freq_offset, 
     804                                                                                                     true)); 
    804805       else // The data might be passed from the model 
    805          instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(grid)); 
     806         instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid)); 
    806807     } 
    807808 
     
    874875       { 
    875876         if (!serverSourceFilter) 
    876            serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(grid, 
    877                                                                                    freq_offset.isEmpty() ? NoneDu : freq_offset)); 
     877           serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 
     878                                                                                   freq_offset.isEmpty() ? NoneDu : freq_offset, 
     879                                                                                   true)); 
    878880 
    879881         selfReferenceFilter = serverSourceFilter; 
     
    888890       { 
    889891         if (!clientSourceFilter) 
    890            clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(grid)); 
     892           clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid)); 
    891893 
    892894         selfReferenceFilter = clientSourceFilter; 
Note: See TracChangeset for help on using the changeset viewer.