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
add daemonize for s4u actors too
[simgrid.git]
/
src
/
msg
/
msg_process.cpp
diff --git
a/src/msg/msg_process.cpp
b/src/msg/msg_process.cpp
index
d0b03bf
..
e8e8b2f
100644
(file)
--- a/
src/msg/msg_process.cpp
+++ b/
src/msg/msg_process.cpp
@@
-4,7
+4,7
@@
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "msg_private.h"
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "msg_private.h"
-#include "simgrid/s4u/
h
ost.hpp"
+#include "simgrid/s4u/
H
ost.hpp"
#include "src/simix/ActorImpl.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_process, msg, "Logging specific to MSG (process)");
#include "src/simix/ActorImpl.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_process, msg, "Logging specific to MSG (process)");
@@
-22,20
+22,20
@@
SG_BEGIN_DECL()
/******************************** Process ************************************/
/**
/******************************** Process ************************************/
/**
- * \brief Cleans the MSG data of a
process.
- * \param smx_
proc a SIMIX process
+ * \brief Cleans the MSG data of a
n actor
+ * \param smx_
actor a SIMIX actor
*/
void MSG_process_cleanup_from_SIMIX(smx_actor_t smx_actor)
{
*/
void MSG_process_cleanup_from_SIMIX(smx_actor_t smx_actor)
{
- simgrid::
Msg
ActorExt* msg_actor;
+ simgrid::
msg::
ActorExt* msg_actor;
// get the MSG process from the SIMIX process
if (smx_actor == SIMIX_process_self()) {
/* avoid a SIMIX request if this function is called by the process itself */
// get the MSG process from the SIMIX process
if (smx_actor == SIMIX_process_self()) {
/* avoid a SIMIX request if this function is called by the process itself */
- msg_actor = (simgrid::
Msg
ActorExt*)SIMIX_process_self_get_data();
+ msg_actor = (simgrid::
msg::
ActorExt*)SIMIX_process_self_get_data();
SIMIX_process_self_set_data(nullptr);
} else {
SIMIX_process_self_set_data(nullptr);
} else {
- msg_actor = (simgrid::
Msg
ActorExt*)smx_actor->data;
+ msg_actor = (simgrid::
msg::
ActorExt*)smx_actor->data;
simcall_process_set_data(smx_actor, nullptr);
}
simcall_process_set_data(smx_actor, nullptr);
}
@@
-136,11
+136,11
@@
msg_process_t MSG_process_create_from_stdfunc(const char* name, std::function<vo
xbt_dict_t properties)
{
xbt_assert(code != nullptr && host != nullptr, "Invalid parameters: host and code params must not be nullptr");
xbt_dict_t properties)
{
xbt_assert(code != nullptr && host != nullptr, "Invalid parameters: host and code params must not be nullptr");
- simgrid::
MsgActorExt* msgExt = new simgrid::Msg
ActorExt(data);
+ simgrid::
msg::ActorExt* msgExt = new simgrid::msg::
ActorExt(data);
smx_actor_t process = simcall_process_create(name, std::move(code), msgExt, host, properties);
smx_actor_t process = simcall_process_create(name, std::move(code), msgExt, host, properties);
- if (
!
process) { /* Undo everything */
+ if (
not
process) { /* Undo everything */
delete msgExt;
return nullptr;
}
delete msgExt;
return nullptr;
}
@@
-163,8
+163,9
@@
msg_process_t MSG_process_attach(const char *name, void *data, msg_host_t host,
xbt_assert(host != nullptr, "Invalid parameters: host and code params must not be nullptr");
/* Let's create the process: SIMIX may decide to start it right now, even before returning the flow control to us */
xbt_assert(host != nullptr, "Invalid parameters: host and code params must not be nullptr");
/* Let's create the process: SIMIX may decide to start it right now, even before returning the flow control to us */
- smx_actor_t process = SIMIX_process_attach(name, new simgrid::MsgActorExt(data), host->cname(), properties, nullptr);
- if (!process)
+ smx_actor_t process =
+ SIMIX_process_attach(name, new simgrid::msg::ActorExt(data), host->cname(), properties, nullptr);
+ if (not process)
xbt_die("Could not attach");
simcall_process_on_exit(process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,process);
return process->ciface();
xbt_die("Could not attach");
simcall_process_on_exit(process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,process);
return process->ciface();
@@
-231,7
+232,7
@@
void* MSG_process_get_data(msg_process_t process)
xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
/* get from SIMIX the MSG process data, and then the user data */
xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
/* get from SIMIX the MSG process data, and then the user data */
- simgrid::
MsgActorExt* msgExt = (simgrid::Msg
ActorExt*)process->getImpl()->data;
+ simgrid::
msg::ActorExt* msgExt = (simgrid::msg::
ActorExt*)process->getImpl()->data;
if (msgExt)
return msgExt->data;
else
if (msgExt)
return msgExt->data;
else
@@
-247,7
+248,7
@@
msg_error_t MSG_process_set_data(msg_process_t process, void *data)
{
xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
{
xbt_assert(process != nullptr, "Invalid parameter: first parameter must not be nullptr!");
- static_cast<simgrid::
Msg
ActorExt*>(process->getImpl()->data)->data = data;
+ static_cast<simgrid::
msg::
ActorExt*>(process->getImpl()->data)->data = data;
return MSG_OK;
}
return MSG_OK;
}
@@
-389,6
+390,14
@@
int MSG_process_self_PPID()
return MSG_process_get_PPID(MSG_process_self());
}
return MSG_process_get_PPID(MSG_process_self());
}
+/** \ingroup m_process_management
+ * \brief Return the name of the current process.
+ */
+const char* MSG_process_self_name()
+{
+ return SIMIX_process_self_get_name();
+}
+
/** \ingroup m_process_management
* \brief Return the current process.
*
/** \ingroup m_process_management
* \brief Return the current process.
*
@@
-470,9
+479,7
@@
XBT_PUBLIC(msg_process_t) MSG_process_restart(msg_process_t process) {
*/
XBT_PUBLIC(void) MSG_process_daemonize(msg_process_t process)
{
*/
XBT_PUBLIC(void) MSG_process_daemonize(msg_process_t process)
{
- simgrid::simix::kernelImmediate([process]() {
- process->getImpl()->daemonize();
- });
+ simgrid::simix::kernelImmediate([process]() { process->getImpl()->daemonize(); });
}
/** @ingroup m_process_management
}
/** @ingroup m_process_management