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
No need to switch data segment when process is finished.
[simgrid.git]
/
src
/
simix
/
ActorImpl.cpp
diff --git
a/src/simix/ActorImpl.cpp
b/src/simix/ActorImpl.cpp
index
e546a66
..
adfd9e3
100644
(file)
--- a/
src/simix/ActorImpl.cpp
+++ b/
src/simix/ActorImpl.cpp
@@
-409,7
+409,7
@@
smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostn
/* Tracing the process creation */
TRACE_msg_process_create(process->getName(), process->pid, process->host);
/* Tracing the process creation */
TRACE_msg_process_create(process->getName(), process->pid, process->host);
- 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
+419,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
+462,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
+575,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
+669,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,7
+748,7
@@
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)
{
+ if
(SMPI_switch_data_segment && !self->finished)
{
SMPI_switch_data_segment(self->pid);
}
}
SMPI_switch_data_segment(self->pid);
}
}