A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
finish snake_casing resource::Action
[simgrid.git]
/
src
/
simix
/
ActorImpl.cpp
diff --git
a/src/simix/ActorImpl.cpp
b/src/simix/ActorImpl.cpp
index
e546a66
..
bf3a1bf
100644
(file)
--- a/
src/simix/ActorImpl.cpp
+++ b/
src/simix/ActorImpl.cpp
@@
-146,7
+146,8
@@
void SIMIX_process_empty_trash()
namespace simgrid {
namespace simgrid {
-namespace simix {
+namespace kernel {
+namespace actor {
ActorImpl::~ActorImpl()
{
ActorImpl::~ActorImpl()
{
@@
-182,7
+183,7
@@
simgrid::s4u::Actor* ActorImpl::restart()
// retrieve the arguments of the old process
// FIXME: Factorize this with SIMIX_host_add_auto_restart_process ?
// retrieve the arguments of the old process
// FIXME: Factorize this with SIMIX_host_add_auto_restart_process ?
- simgrid::
simix
::ProcessArg arg;
+ simgrid::
kernel::actor
::ProcessArg arg;
arg.name = name;
arg.code = code;
arg.host = host;
arg.name = name;
arg.code = code;
arg.host = host;
@@
-254,7
+255,7
@@
smx_activity_t ActorImpl::sleep(double duration)
simgrid::kernel::activity::SleepImpl* synchro = new simgrid::kernel::activity::SleepImpl();
synchro->host = host;
synchro->surf_sleep = host->pimpl_cpu->sleep(duration);
simgrid::kernel::activity::SleepImpl* synchro = new simgrid::kernel::activity::SleepImpl();
synchro->host = host;
synchro->surf_sleep = host->pimpl_cpu->sleep(duration);
- synchro->surf_sleep->set
D
ata(synchro);
+ synchro->surf_sleep->set
_d
ata(synchro);
XBT_DEBUG("Create sleep synchronization %p", synchro);
return synchro;
XBT_DEBUG("Create sleep synchronization %p", synchro);
return synchro;
@@
-264,7
+265,7
@@
void create_maestro(std::function<void()> code)
{
smx_actor_t maestro = nullptr;
/* Create maestro process and initialize it */
{
smx_actor_t maestro = nullptr;
/* Create maestro process and initialize it */
- maestro
= new simgrid::simix
::ActorImpl();
+ maestro
= new simgrid::kernel::actor
::ActorImpl();
maestro->pid = simix_process_maxpid++;
maestro->name = "";
maestro->userdata = nullptr;
maestro->pid = simix_process_maxpid++;
maestro->name = "";
maestro->userdata = nullptr;
@@
-281,13
+282,14
@@
void create_maestro(std::function<void()> code)
simix_global->maestro_process = maestro;
}
simix_global->maestro_process = maestro;
}
+} // namespace actor
}
}
/** @brief Creates and runs the maestro process */
void SIMIX_maestro_create(void (*code)(void*), void* data)
{
}
}
/** @brief Creates and runs the maestro process */
void SIMIX_maestro_create(void (*code)(void*), void* data)
{
- simgrid::
simix
::create_maestro(std::bind(code, data));
+ simgrid::
kernel::actor
::create_maestro(std::bind(code, data));
}
/**
}
/**
@@
-310,7
+312,7
@@
smx_actor_t SIMIX_process_create(const char* name, std::function<void()> code, v
return nullptr;
}
return nullptr;
}
- smx_actor_t process = new simgrid::
simix
::ActorImpl();
+ smx_actor_t process = new simgrid::
kernel::actor
::ActorImpl();
xbt_assert(code && host != nullptr, "Invalid parameters");
/* Process data */
xbt_assert(code && host != nullptr, "Invalid parameters");
/* Process data */
@@
-349,8
+351,8
@@
smx_actor_t SIMIX_process_create(const char* name, std::function<void()> code, v
simix_global->process_to_run.push_back(process);
intrusive_ptr_add_ref(process);
/* Tracing the process creation */
simix_global->process_to_run.push_back(process);
intrusive_ptr_add_ref(process);
/* Tracing the process creation */
- TRACE_msg_process_create(process->getName(), process->pid, process->host);
-
+ if (TRACE_actor_is_enabled())
+ simgrid::instr::Container::byName(process->host->getName())->createChild(instr_pid(process->ciface()), "ACTOR");
/* The onCreation() signal must be delayed until there, where the pid and everything is set */
simgrid::s4u::ActorPtr tmp = process->iface(); // Passing this directly to onCreation will lead to crashes
simgrid::s4u::Actor::onCreation(tmp);
/* The onCreation() signal must be delayed until there, where the pid and everything is set */
simgrid::s4u::ActorPtr tmp = process->iface(); // Passing this directly to onCreation will lead to crashes
simgrid::s4u::Actor::onCreation(tmp);
@@
-372,7
+374,7
@@
smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostn
return nullptr;
}
return nullptr;
}
- smx_actor_t process = new simgrid::
simix
::ActorImpl();
+ smx_actor_t process = new simgrid::
kernel::actor
::ActorImpl();
/* Process data */
process->pid = simix_process_maxpid++;
process->name = std::string(name);
/* Process data */
process->pid = simix_process_maxpid++;
process->name = std::string(name);
@@
-407,9
+409,10
@@
smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostn
intrusive_ptr_add_ref(process);
/* Tracing the process creation */
intrusive_ptr_add_ref(process);
/* Tracing the process creation */
- TRACE_msg_process_create(process->getName(), process->pid, process->host);
+ if (TRACE_actor_is_enabled())
+ simgrid::instr::Container::byName(process->host->getName())->createChild(instr_pid(process->ciface()), "ACTOR");
- auto context = dynamic_cast<simgrid::kernel::context::AttachContext*>(process->context);
+ auto
*
context = dynamic_cast<simgrid::kernel::context::AttachContext*>(process->context);
if (not context)
xbt_die("Not a suitable context");
if (not context)
xbt_die("Not a suitable context");
@@
-419,7
+422,7
@@
smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostn
void SIMIX_process_detach()
{
void SIMIX_process_detach()
{
- auto context = dynamic_cast<simgrid::kernel::context::AttachContext*>(SIMIX_context_self());
+ auto
*
context = dynamic_cast<simgrid::kernel::context::AttachContext*>(SIMIX_context_self());
if (not context)
xbt_die("Not a suitable context");
if (not context)
xbt_die("Not a suitable context");
@@
-462,7
+465,8
@@
void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer) {
return;
}
return;
}
- XBT_DEBUG("Killing process %s@%s", process->getCname(), process->host->getCname());
+ XBT_DEBUG("Actor '%s'@%s is killing actor '%s'@%s", issuer->getCname(), issuer->host->getCname(), process->getCname(),
+ process->host->getCname());
process->context->iwannadie = 1;
process->blocked = 0;
process->context->iwannadie = 1;
process->blocked = 0;
@@
-574,21
+578,19
@@
void SIMIX_process_throw(smx_actor_t process, xbt_errcat_t cat, int value, const
}
}
-void simcall_HANDLER_process_killall(smx_simcall_t simcall, int reset_pid) {
- SIMIX_process_killall(simcall->issuer, reset_pid);
+void simcall_HANDLER_process_killall(smx_simcall_t simcall)
+{
+ SIMIX_process_killall(simcall->issuer);
}
/**
* \brief Kills all running processes.
* \param issuer this one will not be killed
*/
}
/**
* \brief Kills all running processes.
* \param issuer this one will not be killed
*/
-void SIMIX_process_killall(smx_actor_t issuer
, int reset_pid
)
+void SIMIX_process_killall(smx_actor_t issuer)
{
for (auto const& kv : simix_global->process_list)
if (kv.second != issuer)
SIMIX_process_kill(kv.second, issuer);
{
for (auto const& kv : simix_global->process_list)
if (kv.second != issuer)
SIMIX_process_kill(kv.second, issuer);
-
- if (reset_pid > 0)
- simix_process_maxpid = reset_pid;
}
void SIMIX_process_change_host(smx_actor_t actor, sg_host_t dest)
}
void SIMIX_process_change_host(smx_actor_t actor, sg_host_t dest)
@@
-670,7
+672,7
@@
smx_activity_t SIMIX_process_join(smx_actor_t issuer, smx_actor_t process, doubl
[](void*, void* arg) {
auto sleep = static_cast<simgrid::kernel::activity::SleepImpl*>(arg);
if (sleep->surf_sleep)
[](void*, void* arg) {
auto sleep = static_cast<simgrid::kernel::activity::SleepImpl*>(arg);
if (sleep->surf_sleep)
- sleep->surf_sleep->finish(simgrid::
surf
::Action::State::done);
+ sleep->surf_sleep->finish(simgrid::
kernel::resource
::Action::State::done);
intrusive_ptr_release(sleep);
return 0;
},
intrusive_ptr_release(sleep);
return 0;
},
@@
-749,8
+751,8
@@
void SIMIX_process_yield(smx_actor_t self)
std::rethrow_exception(std::move(exception));
}
std::rethrow_exception(std::move(exception));
}
- if
(SMPI_switch_data_segment)
{
- SMPI_switch_data_segment(self->
pid
);
+ if
(SMPI_switch_data_segment && not self->finished)
{
+ SMPI_switch_data_segment(self->
iface()
);
}
}
}
}