Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix mess between smx_activity_t and ActivityImplPtr.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 4 Feb 2020 10:36:56 +0000 (11:36 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 4 Feb 2020 14:35:16 +0000 (15:35 +0100)
The former hides a raw pointer, while the latter is a boost::intrusive_ptr.

13 files changed:
include/simgrid/forward.h
include/simgrid/s4u/Mailbox.hpp
include/simgrid/simix.h
src/kernel/activity/CommImpl.cpp
src/s4u/s4u_Actor.cpp
src/s4u/s4u_Comm.cpp
src/s4u/s4u_Exec.cpp
src/s4u/s4u_Io.cpp
src/s4u/s4u_Mailbox.cpp
src/simix/libsmx.cpp
src/smpi/include/smpi_request.hpp
src/smpi/internals/smpi_global.cpp
src/smpi/mpi/smpi_request.cpp

index 90efce0..7ee6e4f 100644 (file)
@@ -202,10 +202,10 @@ typedef simgrid::s4u::Disk s4u_Disk;
 typedef simgrid::s4u::Storage s4u_Storage;
 typedef simgrid::s4u::NetZone s4u_NetZone;
 typedef simgrid::s4u::VirtualMachine s4u_VM;
-typedef boost::intrusive_ptr<simgrid::kernel::activity::ActivityImpl> smx_activity_t;
 
 typedef simgrid::simix::Timer* smx_timer_t;
 typedef simgrid::kernel::actor::ActorImpl* smx_actor_t;
+typedef simgrid::kernel::activity::ActivityImpl* smx_activity_t;
 typedef simgrid::kernel::activity::ConditionVariableImpl* smx_cond_t;
 typedef simgrid::kernel::activity::MailboxImpl* smx_mailbox_t;
 typedef simgrid::kernel::activity::MutexImpl* smx_mutex_t;
@@ -227,11 +227,11 @@ typedef struct s4u_Disk s4u_Disk;
 typedef struct s4u_Storage s4u_Storage;
 typedef struct s4u_NetZone s4u_NetZone;
 typedef struct s4u_VM s4u_VM;
-typedef struct kernel_Activity* smx_activity_t;
 typedef enum kernel_activity_state e_smx_state_t;
 
 typedef struct s_smx_timer* smx_timer_t;
 typedef struct s_smx_actor* smx_actor_t;
+typedef struct s_smx_activity* smx_activity_t;
 typedef struct s_smx_cond_t* smx_cond_t;
 typedef struct s_smx_mailbox* smx_mailbox_t;
 typedef struct s_smx_mutex* smx_mutex_t;
index 372b730..5c02b70 100644 (file)
@@ -81,7 +81,8 @@ public:
   /** Creates and start a data transmission to that mailbox */
   CommPtr put_async(void* data, uint64_t simulated_size_in_bytes);
 
-  smx_activity_t iprobe(int type, bool (*match_fun)(void*, void*, kernel::activity::CommImpl*), void* data);
+  kernel::activity::ActivityImplPtr iprobe(int type, bool (*match_fun)(void*, void*, kernel::activity::CommImpl*),
+                                           void* data);
   /** Blocking data transmission */
   void put(void* payload, uint64_t simulated_size_in_bytes);
   /** Blocking data transmission with timeout */
index abc0aed..1740dd5 100644 (file)
@@ -114,10 +114,21 @@ XBT_PUBLIC void SIMIX_comm_copy_buffer_callback(simgrid::kernel::activity::CommI
 
 /******************************* Host simcalls ********************************/
 #ifdef __cplusplus
-XBT_PUBLIC e_smx_state_t simcall_execution_wait(const smx_activity_t& execution, double timeout);
+XBT_PUBLIC e_smx_state_t simcall_execution_wait(simgrid::kernel::activity::ActivityImpl* execution, double timeout);
 XBT_PUBLIC unsigned int simcall_execution_waitany_for(simgrid::kernel::activity::ExecImpl* execs[], size_t count,
                                                       double timeout);
-XBT_PUBLIC bool simcall_execution_test(const smx_activity_t& execution);
+XBT_PUBLIC bool simcall_execution_test(simgrid::kernel::activity::ActivityImpl* execution);
+
+XBT_ATTRIB_DEPRECATED_v330("Please use an ActivityImpl* for first parameter") inline e_smx_state_t
+    simcall_execution_wait(const simgrid::kernel::activity::ActivityImplPtr& execution, double timeout)
+{
+  return simcall_execution_wait(execution.get(), timeout);
+}
+XBT_ATTRIB_DEPRECATED_v330("Please use an ActivityImpl* for first parameter") inline bool simcall_execution_test(
+    const simgrid::kernel::activity::ActivityImplPtr& execution)
+{
+  return simcall_execution_test(execution.get());
+}
 #endif
 
 /**************************** Process simcalls ********************************/
@@ -142,36 +153,47 @@ XBT_PUBLIC void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double
                                   void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
                                   void* data, double timeout);
 
-XBT_PUBLIC smx_activity_t simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate,
-                                             void* src_buff, size_t src_buff_size,
-                                             bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
-                                             void (*clean_fun)(void*),
-                                             void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
-                                             void* data, bool detached);
+XBT_PUBLIC simgrid::kernel::activity::ActivityImplPtr
+simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
+                   size_t src_buff_size, bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
+                   void (*clean_fun)(void*), void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
+                   void* data, bool detached);
 
 XBT_PUBLIC void simcall_comm_recv(smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff, size_t* dst_buff_size,
                                   bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
                                   void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
                                   void* data, double timeout, double rate);
 
-XBT_PUBLIC smx_activity_t simcall_comm_irecv(smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff,
-                                             size_t* dst_buff_size,
-                                             bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
-                                             void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
-                                             void* data, double rate);
+XBT_PUBLIC simgrid::kernel::activity::ActivityImplPtr
+simcall_comm_irecv(smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff, size_t* dst_buff_size,
+                   bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
+                   void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t), void* data, double rate);
 
-XBT_PUBLIC smx_activity_t simcall_comm_iprobe(smx_mailbox_t mbox, int type,
-                                              bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
-                                              void* data);
+XBT_PUBLIC simgrid::kernel::activity::ActivityImplPtr
+simcall_comm_iprobe(smx_mailbox_t mbox, int type, bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
+                    void* data);
 
 /* FIXME: waitany is going to be a vararg function, and should take a timeout */
-XBT_PUBLIC unsigned int simcall_comm_waitany(smx_activity_t comms[], size_t count, double timeout);
+XBT_ATTRIB_DEPRECATED_v330("Please use a CommImpl*[] for first parameter") XBT_PUBLIC
+    unsigned int simcall_comm_waitany(simgrid::kernel::activity::ActivityImplPtr comms[], size_t count, double timeout);
 XBT_PUBLIC unsigned int simcall_comm_waitany(simgrid::kernel::activity::CommImpl* comms[], size_t count,
                                              double timeout);
-XBT_PUBLIC void simcall_comm_wait(const smx_activity_t& comm, double timeout);
-XBT_PUBLIC bool simcall_comm_test(const smx_activity_t& comm);
-XBT_PUBLIC int simcall_comm_testany(smx_activity_t comms[], size_t count);
+XBT_PUBLIC void simcall_comm_wait(simgrid::kernel::activity::ActivityImpl* comm, double timeout);
+XBT_PUBLIC bool simcall_comm_test(simgrid::kernel::activity::ActivityImpl* comm);
+XBT_ATTRIB_DEPRECATED_v330("Please use a CommImpl*[] for first parameter") XBT_PUBLIC
+    int simcall_comm_testany(simgrid::kernel::activity::ActivityImplPtr comms[], size_t count);
 XBT_PUBLIC int simcall_comm_testany(simgrid::kernel::activity::CommImpl* comms[], size_t count);
+
+XBT_ATTRIB_DEPRECATED_v330("Please use a ActivityImpl* for first parameter") inline void simcall_comm_wait(
+    const simgrid::kernel::activity::ActivityImplPtr& comm, double timeout)
+{
+  simcall_comm_wait(comm.get(), timeout);
+}
+XBT_ATTRIB_DEPRECATED_v330("Please use a ActivityImpl* for first parameter") inline bool simcall_comm_test(
+    const simgrid::kernel::activity::ActivityImplPtr& comm)
+{
+  return simcall_comm_test(comm.get());
+}
 #endif
 
 /************************** Synchro simcalls **********************************/
@@ -191,8 +213,20 @@ SG_END_DECL
 
 /*****************************   Io   **************************************/
 #ifdef __cplusplus
-XBT_PUBLIC e_smx_state_t simcall_io_wait(const smx_activity_t& io, double timeout);
-XBT_PUBLIC bool simcall_io_test(const smx_activity_t& io);
+XBT_PUBLIC e_smx_state_t simcall_io_wait(simgrid::kernel::activity::ActivityImpl* io, double timeout);
+XBT_PUBLIC bool simcall_io_test(simgrid::kernel::activity::ActivityImpl* io);
+
+XBT_ATTRIB_DEPRECATED_v330("Please use an ActivityImpl* for first parameter") inline e_smx_state_t
+    simcall_io_wait(const simgrid::kernel::activity::ActivityImplPtr& io, double timeout)
+{
+  return simcall_io_wait(io.get(), timeout);
+}
+XBT_ATTRIB_DEPRECATED_v330("Please use an ActivityImpl* for first parameter") inline bool simcall_io_test(
+    const simgrid::kernel::activity::ActivityImplPtr& io)
+{
+  return simcall_io_test(io.get());
+}
+
 #endif
 /************************** MC simcalls   **********************************/
 SG_BEGIN_DECL
index b80dc64..3d72d9f 100644 (file)
@@ -24,13 +24,13 @@ XBT_PRIVATE void simcall_HANDLER_comm_send(smx_simcall_t simcall, smx_actor_t sr
                                            void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
                                            void* data, double timeout)
 {
-  smx_activity_t comm = simcall_HANDLER_comm_isend(simcall, src, mbox, task_size, rate, src_buff, src_buff_size,
-                                                   match_fun, nullptr, copy_data_fun, data, 0);
+  simgrid::kernel::activity::ActivityImplPtr comm = simcall_HANDLER_comm_isend(
+      simcall, src, mbox, task_size, rate, src_buff, src_buff_size, match_fun, nullptr, copy_data_fun, data, 0);
   SIMCALL_SET_MC_VALUE(*simcall, 0);
   simcall_HANDLER_comm_wait(simcall, static_cast<simgrid::kernel::activity::CommImpl*>(comm.get()), timeout);
 }
 
-XBT_PRIVATE smx_activity_t simcall_HANDLER_comm_isend(
+XBT_PRIVATE simgrid::kernel::activity::ActivityImplPtr simcall_HANDLER_comm_isend(
     smx_simcall_t /*simcall*/, smx_actor_t src_proc, smx_mailbox_t mbox, double task_size, double rate,
     unsigned char* src_buff, size_t src_buff_size,
     bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
@@ -103,16 +103,17 @@ XBT_PRIVATE void simcall_HANDLER_comm_recv(smx_simcall_t simcall, smx_actor_t re
                                            void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
                                            void* data, double timeout, double rate)
 {
-  smx_activity_t comm = simcall_HANDLER_comm_irecv(simcall, receiver, mbox, dst_buff, dst_buff_size, match_fun,
-                                                   copy_data_fun, data, rate);
+  simgrid::kernel::activity::ActivityImplPtr comm = simcall_HANDLER_comm_irecv(
+      simcall, receiver, mbox, dst_buff, dst_buff_size, match_fun, copy_data_fun, data, rate);
   SIMCALL_SET_MC_VALUE(*simcall, 0);
   simcall_HANDLER_comm_wait(simcall, static_cast<simgrid::kernel::activity::CommImpl*>(comm.get()), timeout);
 }
 
-XBT_PRIVATE smx_activity_t simcall_HANDLER_comm_irecv(
-    smx_simcall_t /*simcall*/, smx_actor_t receiver, smx_mailbox_t mbox, unsigned char* dst_buff, size_t* dst_buff_size,
-    bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
-    void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t), void* data, double rate)
+XBT_PRIVATE simgrid::kernel::activity::ActivityImplPtr
+simcall_HANDLER_comm_irecv(smx_simcall_t /*simcall*/, smx_actor_t receiver, smx_mailbox_t mbox, unsigned char* dst_buff,
+                           size_t* dst_buff_size, bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
+                           void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t), void* data,
+                           double rate)
 {
   simgrid::kernel::activity::CommImplPtr this_synchro =
       simgrid::kernel::activity::CommImplPtr(new simgrid::kernel::activity::CommImpl());
index ca0df72..02f2ba7 100644 (file)
@@ -106,7 +106,7 @@ void Actor::join(double timeout)
       // The joined process is already finished, just wake up the issuer right away
       issuer->simcall_answer();
     } else {
-      smx_activity_t sync = issuer->join(target, timeout);
+      kernel::activity::ActivityImplPtr sync = issuer->join(target, timeout);
       sync->register_simcall(&issuer->simcall);
     }
   });
@@ -315,7 +315,7 @@ void sleep_for(double duration)
         issuer->simcall_answer();
         return;
       }
-      smx_activity_t sync = issuer->sleep(duration);
+      kernel::activity::ActivityImplPtr sync = issuer->sleep(duration);
       sync->register_simcall(&issuer->simcall);
     });
 
index 49edc9f..fdaf3bc 100644 (file)
@@ -177,7 +177,7 @@ Comm* Comm::wait_for(double timeout)
       break;
 
     case State::STARTED:
-      simcall_comm_wait(pimpl_, timeout);
+      simcall_comm_wait(get_impl(), timeout);
       on_completion(*Actor::self());
       state_ = State::FINISHED;
       this->release_dependencies();
@@ -233,7 +233,7 @@ bool Comm::test()
   if (state_ == State::INITED || state_ == State::STARTING)
     this->vetoable_start();
 
-  if (simcall_comm_test(pimpl_)) {
+  if (simcall_comm_test(get_impl())) {
     state_ = State::FINISHED;
     this->release_dependencies();
     return true;
index 9c75bca..64ee26d 100644 (file)
@@ -31,7 +31,7 @@ bool Exec::test()
   if (state_ == State::INITED || state_ == State::STARTING)
     this->vetoable_start();
 
-  if (simcall_execution_test(pimpl_)) {
+  if (simcall_execution_test(get_impl())) {
     state_ = State::FINISHED;
     this->release_dependencies();
     return true;
@@ -49,7 +49,7 @@ Exec* Exec::wait_for(double timeout)
 {
   if (state_ == State::INITED)
     vetoable_start();
-  simcall_execution_wait(pimpl_, timeout);
+  simcall_execution_wait(get_impl(), timeout);
   state_ = State::FINISHED;
   on_completion(*Actor::self(), *this);
   this->release_dependencies();
index be9a3ad..68adbec 100644 (file)
@@ -63,7 +63,7 @@ Io* Io::wait_for(double timeout)
 {
   if (state_ == State::INITED)
     vetoable_start();
-  simcall_io_wait(pimpl_, timeout);
+  simcall_io_wait(get_impl(), timeout);
   state_ = State::FINISHED;
   this->release_dependencies();
   return this;
@@ -80,7 +80,7 @@ bool Io::test()
   if (state_ == State::INITED || state_ == State::STARTING)
     this->vetoable_start();
 
-  if (simcall_io_test(pimpl_)) {
+  if (simcall_io_test(get_impl())) {
     state_ = State::FINISHED;
     this->release_dependencies();
     return true;
index d153c08..e7fb05d 100644 (file)
@@ -153,7 +153,8 @@ void* Mailbox::get(double timeout)
   return res;
 }
 
-smx_activity_t Mailbox::iprobe(int type, bool (*match_fun)(void*, void*, kernel::activity::CommImpl*), void* data)
+kernel::activity::ActivityImplPtr
+Mailbox::iprobe(int type, bool (*match_fun)(void*, void*, kernel::activity::CommImpl*), void* data)
 {
   return kernel::actor::simcall([this, type, match_fun, data] { return pimpl_->iprobe(type, match_fun, data); });
 }
index 226cd5f..2a16bc5 100644 (file)
  *
  * @param execution The execution synchro
  */
-e_smx_state_t simcall_execution_wait(const smx_activity_t& execution, double timeout)
+e_smx_state_t simcall_execution_wait(simgrid::kernel::activity::ActivityImpl* execution, double timeout)
 {
-  return (e_smx_state_t)simcall_BODY_execution_wait(static_cast<simgrid::kernel::activity::ExecImpl*>(execution.get()),
+  return (e_smx_state_t)simcall_BODY_execution_wait(static_cast<simgrid::kernel::activity::ExecImpl*>(execution),
                                                     timeout);
 }
 
-bool simcall_execution_test(const smx_activity_t& execution)
+bool simcall_execution_test(simgrid::kernel::activity::ActivityImpl* execution)
 {
-  return simcall_BODY_execution_test(static_cast<simgrid::kernel::activity::ExecImpl*>(execution.get()));
+  return simcall_BODY_execution_test(static_cast<simgrid::kernel::activity::ExecImpl*>(execution));
 }
 
 unsigned int simcall_execution_waitany_for(simgrid::kernel::activity::ExecImpl* execs[], size_t count, double timeout)
@@ -78,10 +78,11 @@ void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size,
 
   if (MC_is_active() || MC_record_replay_is_active()) {
     /* the model-checker wants two separate simcalls */
-    smx_activity_t comm = nullptr; /* MC needs the comm to be set to nullptr during the simcall */
+    simgrid::kernel::activity::ActivityImplPtr comm =
+        nullptr; /* MC needs the comm to be set to nullptr during the simcall */
     comm = simcall_comm_isend(sender, mbox, task_size, rate,
         src_buff, src_buff_size, match_fun, nullptr, copy_data_fun, data, 0);
-    simcall_comm_wait(comm, timeout);
+    simcall_comm_wait(comm.get(), timeout);
     comm = nullptr;
   }
   else {
@@ -93,12 +94,11 @@ void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size,
 /**
  * @ingroup simix_comm_management
  */
-smx_activity_t simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
-                                  size_t src_buff_size,
-                                  bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
-                                  void (*clean_fun)(void*),
-                                  void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
-                                  void* data, bool detached)
+simgrid::kernel::activity::ActivityImplPtr
+simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
+                   size_t src_buff_size, bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
+                   void (*clean_fun)(void*), void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
+                   void* data, bool detached)
 {
   /* checking for infinite values */
   xbt_assert(std::isfinite(task_size), "task_size is not finite!");
@@ -123,10 +123,11 @@ void simcall_comm_recv(smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff,
 
   if (MC_is_active() || MC_record_replay_is_active()) {
     /* the model-checker wants two separate simcalls */
-    smx_activity_t comm = nullptr; /* MC needs the comm to be set to nullptr during the simcall */
+    simgrid::kernel::activity::ActivityImplPtr comm =
+        nullptr; /* MC needs the comm to be set to nullptr during the simcall */
     comm = simcall_comm_irecv(receiver, mbox, dst_buff, dst_buff_size,
                               match_fun, copy_data_fun, data, rate);
-    simcall_comm_wait(comm, timeout);
+    simcall_comm_wait(comm.get(), timeout);
     comm = nullptr;
   }
   else {
@@ -137,10 +138,10 @@ void simcall_comm_recv(smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff,
 /**
  * @ingroup simix_comm_management
  */
-smx_activity_t simcall_comm_irecv(smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff, size_t* dst_buff_size,
-                                  bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
-                                  void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t),
-                                  void* data, double rate)
+simgrid::kernel::activity::ActivityImplPtr
+simcall_comm_irecv(smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff, size_t* dst_buff_size,
+                   bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
+                   void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t), void* data, double rate)
 {
   xbt_assert(mbox, "No rendez-vous point defined for irecv");
 
@@ -151,8 +152,9 @@ smx_activity_t simcall_comm_irecv(smx_actor_t receiver, smx_mailbox_t mbox, void
 /**
  * @ingroup simix_comm_management
  */
-smx_activity_t simcall_comm_iprobe(smx_mailbox_t mbox, int type,
-                                   bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*), void* data)
+simgrid::kernel::activity::ActivityImplPtr
+simcall_comm_iprobe(smx_mailbox_t mbox, int type, bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
+                    void* data)
 {
   xbt_assert(mbox, "No rendez-vous point defined for iprobe");
 
@@ -162,10 +164,11 @@ smx_activity_t simcall_comm_iprobe(smx_mailbox_t mbox, int type,
 /**
  * @ingroup simix_comm_management
  */
-unsigned int simcall_comm_waitany(smx_activity_t comms[], size_t count, double timeout)
+unsigned int simcall_comm_waitany(simgrid::kernel::activity::ActivityImplPtr comms[], size_t count,
+                                  double timeout) // XBT_ATTRIB_DEPRECATED_v330
 {
   std::unique_ptr<simgrid::kernel::activity::CommImpl* []> rcomms(new simgrid::kernel::activity::CommImpl*[count]);
-  std::transform(comms, comms + count, rcomms.get(), [](const smx_activity_t& comm) {
+  std::transform(comms, comms + count, rcomms.get(), [](const simgrid::kernel::activity::ActivityImplPtr& comm) {
     return static_cast<simgrid::kernel::activity::CommImpl*>(comm.get());
   });
   return simcall_BODY_comm_waitany(rcomms.get(), count, timeout);
@@ -179,12 +182,12 @@ unsigned int simcall_comm_waitany(simgrid::kernel::activity::CommImpl* comms[],
 /**
  * @ingroup simix_comm_management
  */
-int simcall_comm_testany(smx_activity_t comms[], size_t count)
+int simcall_comm_testany(simgrid::kernel::activity::ActivityImplPtr comms[], size_t count) // XBT_ATTRIB_DEPRECATED_v330
 {
   if (count == 0)
     return -1;
   std::unique_ptr<simgrid::kernel::activity::CommImpl* []> rcomms(new simgrid::kernel::activity::CommImpl*[count]);
-  std::transform(comms, comms + count, rcomms.get(), [](const smx_activity_t& comm) {
+  std::transform(comms, comms + count, rcomms.get(), [](const simgrid::kernel::activity::ActivityImplPtr& comm) {
     return static_cast<simgrid::kernel::activity::CommImpl*>(comm.get());
   });
   return simcall_BODY_comm_testany(rcomms.get(), count);
@@ -200,19 +203,19 @@ int simcall_comm_testany(simgrid::kernel::activity::CommImpl* comms[], size_t co
 /**
  * @ingroup simix_comm_management
  */
-void simcall_comm_wait(const smx_activity_t& comm, double timeout)
+void simcall_comm_wait(simgrid::kernel::activity::ActivityImpl* comm, double timeout)
 {
   xbt_assert(std::isfinite(timeout), "timeout is not finite!");
-  simcall_BODY_comm_wait(static_cast<simgrid::kernel::activity::CommImpl*>(comm.get()), timeout);
+  simcall_BODY_comm_wait(static_cast<simgrid::kernel::activity::CommImpl*>(comm), timeout);
 }
 
 /**
  * @ingroup simix_comm_management
  *
  */
-bool simcall_comm_test(const smx_activity_t& comm)
+bool simcall_comm_test(simgrid::kernel::activity::ActivityImpl* comm)
 {
-  return simcall_BODY_comm_test(static_cast<simgrid::kernel::activity::CommImpl*>(comm.get()));
+  return simcall_BODY_comm_test(static_cast<simgrid::kernel::activity::CommImpl*>(comm));
 }
 
 /**
@@ -303,14 +306,14 @@ int simcall_sem_acquire_timeout(smx_sem_t sem, double timeout)
   return simcall_BODY_sem_acquire_timeout(sem, timeout);
 }
 
-e_smx_state_t simcall_io_wait(const smx_activity_t& io, double timeout)
+e_smx_state_t simcall_io_wait(simgrid::kernel::activity::ActivityImpl* io, double timeout)
 {
-  return (e_smx_state_t)simcall_BODY_io_wait(static_cast<simgrid::kernel::activity::IoImpl*>(io.get()), timeout);
+  return (e_smx_state_t)simcall_BODY_io_wait(static_cast<simgrid::kernel::activity::IoImpl*>(io), timeout);
 }
 
-bool simcall_io_test(const smx_activity_t& io)
+bool simcall_io_test(simgrid::kernel::activity::ActivityImpl* io)
 {
-  return simcall_BODY_io_test(static_cast<simgrid::kernel::activity::IoImpl*>(io.get()));
+  return simcall_BODY_io_test(static_cast<simgrid::kernel::activity::IoImpl*>(io));
 }
 
 void simcall_run_kernel(std::function<void()> const& code, simgrid::mc::SimcallInspector* t)
index 902a892..7196af7 100644 (file)
@@ -41,7 +41,7 @@ class Request : public F2C {
   bool truncated_;
   size_t real_size_;
   MPI_Comm comm_;
-  smx_activity_t action_;
+  simgrid::kernel::activity::ActivityImplPtr action_;
   unsigned flags_;
   bool detached_;
   MPI_Request detached_sender_;
index 9a4bd79..b768c45 100644 (file)
@@ -128,7 +128,7 @@ void smpi_comm_set_copy_data_callback(void (*callback) (smx_activity_t, void*, s
   static void (*saved_callback)(smx_activity_t, void*, size_t);
   saved_callback               = callback;
   smpi_comm_copy_data_callback = [](simgrid::kernel::activity::CommImpl* comm, void* buff, size_t size) {
-    saved_callback(smx_activity_t(comm), buff, size);
+    saved_callback(comm, buff, size);
   };
 }
 
index 6a8ac60..90d7485 100644 (file)
@@ -376,7 +376,7 @@ void Request::start()
       mailbox = process->mailbox_small();
       XBT_DEBUG("Is there a corresponding send already posted in the small mailbox %s (in case of SSEND)?",
                 mailbox->get_cname());
-      smx_activity_t action = mailbox->iprobe(0, &match_recv, static_cast<void*>(this));
+      simgrid::kernel::activity::ActivityImplPtr action = mailbox->iprobe(0, &match_recv, static_cast<void*>(this));
 
       if (action == nullptr) {
         mailbox = process->mailbox();
@@ -392,7 +392,7 @@ void Request::start()
     } else {
       mailbox = process->mailbox_small();
       XBT_DEBUG("Is there a corresponding send already posted the small mailbox?");
-      smx_activity_t action = mailbox->iprobe(0, &match_recv, static_cast<void*>(this));
+      simgrid::kernel::activity::ActivityImplPtr action = mailbox->iprobe(0, &match_recv, static_cast<void*>(this));
 
       if (action == nullptr) {
         XBT_DEBUG("No, nothing in the permanent receive mailbox");
@@ -470,7 +470,7 @@ void Request::start()
     } else if (((flags_ & MPI_REQ_RMA) != 0) || static_cast<int>(size_) < smpi_cfg_async_small_thresh()) { // eager mode
       mailbox = process->mailbox();
       XBT_DEBUG("Is there a corresponding recv already posted in the large mailbox %s?", mailbox->get_cname());
-      smx_activity_t action = mailbox->iprobe(1, &match_send, static_cast<void*>(this));
+      simgrid::kernel::activity::ActivityImplPtr action = mailbox->iprobe(1, &match_send, static_cast<void*>(this));
       if (action == nullptr) {
         if ((flags_ & MPI_REQ_SSEND) == 0) {
           mailbox = process->mailbox_small();
@@ -562,7 +562,7 @@ int Request::test(MPI_Request * request, MPI_Status * status, int* flag) {
   if (((*request)->flags_ & MPI_REQ_PREPARED) == 0) {
     if ((*request)->action_ != nullptr && (*request)->cancelled_ != 1){
       try{
-        *flag = simcall_comm_test((*request)->action_);
+        *flag = simcall_comm_test((*request)->action_.get());
       } catch (const Exception&) {
         *flag = 0;
         return ret;
@@ -917,7 +917,7 @@ int Request::wait(MPI_Request * request, MPI_Status * status)
   if ((*request)->action_ != nullptr){
       try{
         // this is not a detached send
-        simcall_comm_wait((*request)->action_, -1.0);
+        simcall_comm_wait((*request)->action_.get(), -1.0);
       } catch (const Exception&) {
         XBT_VERB("Request cancelled");
       }