Skip to content
  • Fred Suter's avatar
    Enable setting a specific data copy callback to any comm · 73697154
    Fred Suter authored
    This is becoming mandatory if one has the silly idea to mix SMPI
    communications and S4U communications within the same simulation
    launched with smpirun.
    
    smpirun sets its own callback for ALL comms in smpi_main and thus
    consider that averything is a SMPI communication. If you need to
    trick SMPI to have S4U comms on the side, you thus have to
    override this callback:
    
    Sender side:
      mbox->put_init(payload, size)
          ->set_copy_data_callback(SIMIX_comm_copy_pointer_callback)
          ->detach(); // or start/vetoable_start/wait
    
    Receiver side:
     mbox->get_init()
         ->set_dst_data(reinterpret_cast<void**>(data), sizeof(void*))
         ->set_copy_data_callback(SIMIX_comm_copy_pointer_callback)
         ->wait(); // or start/vetoable_start
    73697154