{
jobject jprocess; /* the global reference to the java process instance */
jstring jname; /* the name of the java process instance */
- const char *name; /* the C name of the process */
- const char *hostname;
msg_process_t process; /* the native process to create */
msg_host_t host; /* Where that process lives */
- hostname = env->GetStringUTFChars((jstring) jhostname, 0);
+ const char* hostname = env->GetStringUTFChars((jstring)jhostname, 0);
/* get the name of the java process */
jname = jprocess_get_name(jprocess_arg, env);
if (!jname) {
- jxbt_throw_null(env,
- xbt_strdup("Internal error: Process name cannot be nullptr"));
+ jxbt_throw_null(env, xbt_strdup("Process name cannot be nullptr"));
return;
}
+ const char* name = env->GetStringUTFChars(jname, 0);
+ name = xbt_strdup(name);
/* bind/retrieve the msg host */
host = MSG_host_by_name(hostname);
return;
}
- /* build the C name of the process */
- name = env->GetStringUTFChars(jname, 0);
- name = xbt_strdup(name);
-
/* Retrieve the kill time from the process */
jdouble jkill = env->GetDoubleField(jprocess, jprocess_field_Process_killTime);
/* Actually build the MSG process */
process = MSG_process_create_with_environment(name, [](int argc, char** argv) -> int {
smx_actor_t process = SIMIX_process_self();
// This is the jprocess passed as environment.
- // It would be simplet if we could use a closure.
+ // It would be simpler if we could use a closure.
jobject jprocess = (jobject) MSG_process_get_data(process);
simgrid::kernel::context::java_main_jprocess(jprocess);
return 0;
/** The arguments of the method function of the process. */
private ArrayList<String> args = new ArrayList<>();
-
- /** Default constructor */
- protected Process() {
- this.id = nextProcessId++;
- }
-
/**
* Constructs a new process from the name of a host and his name. The method
* function of the process doesn't have argument.
*
- * @param hostname The name of the host of the process to create.
+ * @param hostname Where to create the process.
* @param name The name of the process.
*
* @exception HostNotFoundException if no host with this name exists.
* Constructs a new process from the name of a host and his name. The arguments
* of the method function of the process are specified by the parameter args.
*
- * @param hostname The name of the host of the process to create.
+ * @param hostname Where to create the process.
* @param name The name of the process.
* @param args The arguments of the main function of the process.
*
* Constructs a new process from a host and his name. The method function of the
* process doesn't have argument.
*
- * @param host The host of the process to create.
+ * @param host Where to create the process.
* @param name The name of the process.
*
*/
* Constructs a new process from a host and his name, the arguments of here method function are
* specified by the parameter args.
*
- * @param host The host of the process to create.
+ * @param host Where to create the process.
* @param name The name of the process.
* @param args The arguments of main method of the process.
*/
- public Process(Host host, String name, String[]args) {
- this();
- this.host = host;
+ public Process(Host host, String name, String[]args)
+ {
if (host == null)
- throw new NullPointerException("Host cannot be NULL");
+ throw new NullPointerException("Cannot create a process on the null host");
if (name == null)
- throw new NullPointerException("Process name cannot be NULL");
+ throw new NullPointerException("Process name cannot be null");
+
+ this.id = nextProcessId++;
+ this.host = host;
this.name = name;
this.args = new ArrayList<>();
* Constructs a new process from a host and his name, the arguments of here method function are
* specified by the parameter args.
*
- * @param host The host of the process to create.
+ * @param host Where to create the process.
* @param name The name of the process.
* @param args The arguments of main method of the process.
* @param startTime Start time of the process