* the concept of <em>process</em> is at the heart of the
* simulator. A process may be defined as a <em>code</em>, with
* some <em>private data</em>, executing in a <em>location</em>.
* the concept of <em>process</em> is at the heart of the
* simulator. A process may be defined as a <em>code</em>, with
* some <em>private data</em>, executing in a <em>location</em>.
xbt_dict_t properties, int auto_restart)
{
m_host_t host = MSG_get_host_by_name(hostname);
xbt_dict_t properties, int auto_restart)
{
m_host_t host = MSG_get_host_by_name(hostname);
- m_process_t p = MSG_process_create_with_environment(name, code, data,
+ msg_process_t p = MSG_process_create_with_environment(name, code, data,
host, argc, argv,
properties);
if (p) {
MSG_process_set_kill_time(p,kill_time);
MSG_process_auto_restart_set(p,auto_restart);
}
host, argc, argv,
properties);
if (p) {
MSG_process_set_kill_time(p,kill_time);
MSG_process_auto_restart_set(p,auto_restart);
}
*
* Does exactly the same as #MSG_process_create_with_arguments but without
providing standard arguments (\a argc, \a argv, \a start_time, \a kill_time).
* \sa MSG_process_create_with_arguments
*/
*
* Does exactly the same as #MSG_process_create_with_arguments but without
providing standard arguments (\a argc, \a argv, \a start_time, \a kill_time).
* \sa MSG_process_create_with_arguments
*/
* corresponding object. The structure (and the corresponding thread) is
* created, and put in the list of ready process.
* \param name a name for the object. It is for user-level information
and can be NULL.
* \param code is a function describing the behavior of the process. It
should then only use functions described in \ref
* corresponding object. The structure (and the corresponding thread) is
* created, and put in the list of ready process.
* \param name a name for the object. It is for user-level information
and can be NULL.
* \param code is a function describing the behavior of the process. It
should then only use functions described in \ref
in \ref m_host_management (only the read-only functions i.e. whose
name contains the word get), in \ref m_task_management (to create
or destroy some #m_task_t for example) and in \ref
in \ref m_host_management (only the read-only functions i.e. whose
name contains the word get), in \ref m_task_management (to create
or destroy some #m_task_t for example) and in \ref
* \param host the location where the new process is executed.
* \param argc first argument passed to \a code
* \param argv second argument passed to \a code
* \param host the location where the new process is executed.
* \param argc first argument passed to \a code
* \param argv second argument passed to \a code
* corresponding object. The structure (and the corresponding thread) is
* created, and put in the list of ready process.
* \param name a name for the object. It is for user-level information
and can be NULL.
* \param code is a function describing the behavior of the process. It
should then only use functions described in \ref
* corresponding object. The structure (and the corresponding thread) is
* created, and put in the list of ready process.
* \param name a name for the object. It is for user-level information
and can be NULL.
* \param code is a function describing the behavior of the process. It
should then only use functions described in \ref
in \ref m_host_management (only the read-only functions i.e. whose
name contains the word get), in \ref m_task_management (to create
or destroy some #m_task_t for example) and in \ref
in \ref m_host_management (only the read-only functions i.e. whose
name contains the word get), in \ref m_task_management (to create
or destroy some #m_task_t for example) and in \ref
* \param argc first argument passed to \a code
* \param argv second argument passed to \a code
* \param properties list a properties defined for this process
* \param argc first argument passed to \a code
* \param argv second argument passed to \a code
* \param properties list a properties defined for this process
{
xbt_assert(code != NULL && host != NULL, "Invalid parameters");
simdata_process_t simdata = xbt_new0(s_simdata_process_t, 1);
{
xbt_assert(code != NULL && host != NULL, "Invalid parameters");
simdata_process_t simdata = xbt_new0(s_simdata_process_t, 1);
{
// /* FIXME: why do we only cancel communication actions? is this useful? */
// simdata_process_t p_simdata = simcall_process_get_data(process);
{
// /* FIXME: why do we only cancel communication actions? is this useful? */
// simdata_process_t p_simdata = simcall_process_get_data(process);
* This function checks whether \a process and \a host are valid pointers
and change the value of the #m_host_t on which \a process is running.
*/
* This function checks whether \a process and \a host are valid pointers
and change the value of the #m_host_t on which \a process is running.
*/
* This function checks whether \a process is a valid pointer or not
and returns the user data associated to this process.
*/
* This function checks whether \a process is a valid pointer or not
and returns the user data associated to this process.
*/
* This function checks whether \a process is a valid pointer or not
and sets the user data associated to this process.
*/
* This function checks whether \a process is a valid pointer or not
and sets the user data associated to this process.
*/
whose PID is equal to \a PID. If no host is found, \c NULL is returned.
Note that the PID are uniq in the whole simulation, not only on a given host.
*/
whose PID is equal to \a PID. If no host is found, \c NULL is returned.
Note that the PID are uniq in the whole simulation, not only on a given host.
*/
* This function checks whether \a process is a valid pointer or not
and return its PID (or 0 in case of problem).
*/
* This function checks whether \a process is a valid pointer or not
and return its PID (or 0 in case of problem).
*/
{
/* Do not raise an exception here: this function is called by the logs
* and the exceptions, so it would be called back again and again */
{
/* Do not raise an exception here: this function is called by the logs
* and the exceptions, so it would be called back again and again */
* \brief Return the PPID of the current process.
*
* This function returns the PID of the parent of the currently
* \brief Return the PPID of the current process.
*
* This function returns the PID of the parent of the currently
* This function suspends the process by suspending the task on which
* it was waiting for the completion.
*/
* This function suspends the process by suspending the task on which
* it was waiting for the completion.
*/
* This function resumes a suspended process by resuming the task on
* which it was waiting for the completion.
*/
* This function resumes a suspended process by resuming the task on
* which it was waiting for the completion.
*/
* This checks whether a process is suspended or not by inspecting the
* task on which it was waiting for the completion.
*/
* This checks whether a process is suspended or not by inspecting the
* task on which it was waiting for the completion.
*/
{
xbt_assert(process != NULL, "Invalid parameter");
return simcall_process_is_suspended(process);
}
{
xbt_assert(process != NULL, "Invalid parameter");
return simcall_process_is_suspended(process);
}
* If the flag is set to 1, the process will be automatically restarted when
* its host comes back up.
*/
* If the flag is set to 1, the process will be automatically restarted when
* its host comes back up.
*/