/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
+#include <functional>
+#include <utility>
+
#include <xbt/function_types.h>
#include <simgrid/simix.h>
#include <xbt/ex.h>
#include "../../simix/smx_private.h"
extern JavaVM *__java_vm;
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(jmsg, bindings, "MSG for Java(TM)");
+XBT_LOG_NEW_DEFAULT_CATEGORY(jmsg, "MSG for Java(TM)");
namespace simgrid {
namespace java {
}
JavaContext* JavaContextFactory::create_context(
- xbt_main_func_t code, int argc, char ** argv,
+ std::function<void()> code,
void_pfn_smxprocess_t cleanup, smx_process_t process)
{
- return this->new_context<JavaContext>(code, argc, argv, cleanup, process);
+ return this->new_context<JavaContext>(std::move(code), cleanup, process);
}
void JavaContextFactory::run_all()
}
}
-
-JavaContext::JavaContext(xbt_main_func_t code,
- int argc, char **argv,
+JavaContext::JavaContext(std::function<void()> code,
void_pfn_smxprocess_t cleanup_func,
smx_process_t process)
- : Context(code, argc, argv, cleanup_func, process)
+ : Context(std::move(code), cleanup_func, process)
{
static int thread_amount=0;
thread_amount++;
- /* If the user provided a function for the process then use it
- otherwise is the context for maestro */
- if (code) {
+ /* If the user provided a function for the process then use it otherwise is the context for maestro */
+ if (has_code()) {
this->jprocess = nullptr;
this->begin = xbt_os_sem_init(0);
this->end = xbt_os_sem_init(0);