} else
state_ = SIMIX_DONE;
- XBT_DEBUG("SIMIX_post_comm: comm %p, state %d, src_proc %p, dst_proc %p, detached: %d", this, (int)state_, src_proc,
- dst_proc, detached);
+ XBT_DEBUG("SIMIX_post_comm: comm %p, state %d, src_proc %p, dst_proc %p, detached: %d", this, (int)state_,
+ src_proc.get(), dst_proc.get(), detached);
/* destroy the surf actions associated with the Simix communication */
cleanupSurf();
#define SIMGRID_KERNEL_ACTIVITY_COMM_HPP
#include "src/kernel/activity/ActivityImpl.hpp"
+#include "src/simix/ActorImpl.hpp"
#include "surf/surf.hpp"
enum e_smx_comm_type_t { SIMIX_COMM_SEND, SIMIX_COMM_RECEIVE, SIMIX_COMM_READY, SIMIX_COMM_DONE };
void (*copy_data_fun)(smx_activity_t, void*, size_t) = nullptr;
/* Surf action data */
- simgrid::kernel::resource::Action* surfAction_ = nullptr; /* The Surf communication action encapsulated */
- simgrid::kernel::resource::Action* src_timeout = nullptr; /* Surf's actions to instrument the timeouts */
- simgrid::kernel::resource::Action* dst_timeout = nullptr; /* Surf's actions to instrument the timeouts */
- smx_actor_t src_proc = nullptr;
- smx_actor_t dst_proc = nullptr;
+ resource::Action* surfAction_ = nullptr; /* The Surf communication action encapsulated */
+ resource::Action* src_timeout = nullptr; /* Surf's actions to instrument the timeouts */
+ resource::Action* dst_timeout = nullptr; /* Surf's actions to instrument the timeouts */
+ actor::ActorImplPtr src_proc = nullptr;
+ actor::ActorImplPtr dst_proc = nullptr;
double rate = 0.0;
double task_size = 0.0;
if (comm->src_proc == actor_) {
XBT_DEBUG("Found an unfinished send comm %p (detached = %d), state %d, src = %p, dst = %p", comm.get(),
- comm->detached, (int)comm->state_, comm->src_proc, comm->dst_proc);
+ comm->detached, (int)comm->state_, comm->src_proc.get(), comm->dst_proc.get());
comm->src_proc = nullptr;
} else if (comm->dst_proc == actor_) {
XBT_DEBUG("Found an unfinished recv comm %p, state %d, src = %p, dst = %p", comm.get(), (int)comm->state_,
- comm->src_proc, comm->dst_proc);
+ comm->src_proc.get(), comm->dst_proc.get());
comm->dst_proc = nullptr;
if (comm->detached && comm->src_proc != nullptr) {
mc_model_checker->process().read(temp_comm, comm_addr);
simgrid::kernel::activity::CommImpl* comm = temp_comm.getBuffer();
- smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->src_proc));
- smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->dst_proc));
+ smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->src_proc.get()));
+ smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->dst_proc.get()));
comm_pattern->src_proc = src_proc->pid_;
comm_pattern->dst_proc = dst_proc->pid_;
comm_pattern->src_host = MC_smx_actor_get_host_name(src_proc);
char* remote_name = mc_model_checker->process().read<char*>(
RemotePtr<char*>((uint64_t)(synchro->mbox ? &synchro->mbox->name_ : &synchro->mbox_cpy->name_)));
pattern->rdv = mc_model_checker->process().read_string(RemotePtr<char>(remote_name));
- pattern->src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(synchro->src_proc))->pid_;
+ pattern->src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(synchro->src_proc.get()))->pid_;
pattern->src_host = MC_smx_actor_get_host_name(issuer);
#if HAVE_SMPI
&remote_name, remote(comm->mbox ? &simgrid::xbt::string::to_string_data(comm->mbox->name_).data
: &simgrid::xbt::string::to_string_data(comm->mbox_cpy->name_).data));
pattern->rdv = mc_model_checker->process().read_string(RemotePtr<char>(remote_name));
- pattern->dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->dst_proc))->pid_;
+ pattern->dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->dst_proc.get()))->pid_;
pattern->dst_host = MC_smx_actor_get_host_name(issuer);
} else
xbt_die("Unexpected call_type %i", (int) call_type);
} else
act = remote_act;
- smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->src_proc));
- smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->dst_proc));
+ smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->src_proc.get()));
+ smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->dst_proc.get()));
args =
bprintf("comm=%s [(%ld)%s (%s)-> (%ld)%s (%s)]", p, src_proc ? src_proc->pid_ : 0,
src_proc ? MC_smx_actor_get_host_name(src_proc) : "", src_proc ? MC_smx_actor_get_name(src_proc) : "",
type = "Test TRUE";
p = pointer_to_string(remote_act);
- smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->src_proc));
- smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->dst_proc));
+ smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->src_proc.get()));
+ smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(act->dst_proc.get()));
args = bprintf("comm=%s [(%ld)%s (%s) -> (%ld)%s (%s)]", p, src_proc->pid_, MC_smx_actor_get_name(src_proc),
MC_smx_actor_get_host_name(src_proc), dst_proc->pid_, MC_smx_actor_get_name(dst_proc),
MC_smx_actor_get_host_name(dst_proc));
remote(static_cast<simgrid::kernel::activity::CommImpl*>(remote_act)));
simgrid::kernel::activity::CommImpl* comm = temp_comm.getBuffer();
- smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->src_proc));
- smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->dst_proc));
+ smx_actor_t src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->src_proc.get()));
+ smx_actor_t dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->dst_proc.get()));
if (issuer->host_)
label = simgrid::xbt::string_printf("[(%ld)%s] Wait [(%ld)->(%ld)]", issuer->pid_,
MC_smx_actor_get_host_name(issuer), src_proc ? src_proc->pid_ : 0,
}
namespace simgrid {
-
namespace kernel {
namespace actor {