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
[xbt] Move throwpoint out of xbt_ex in WithContextException
[simgrid.git]
/
src
/
bindings
/
java
/
JavaContext.cpp
diff --git
a/src/bindings/java/JavaContext.cpp
b/src/bindings/java/JavaContext.cpp
index
c6a3d48
..
8460d04
100644
(file)
--- a/
src/bindings/java/JavaContext.cpp
+++ b/
src/bindings/java/JavaContext.cpp
@@
-12,10
+12,12
@@
#include <xbt/function_types.h>
#include <simgrid/simix.h>
#include <xbt/ex.h>
#include <xbt/function_types.h>
#include <simgrid/simix.h>
#include <xbt/ex.h>
+#include <xbt/ex.hpp>
#include "JavaContext.hpp"
#include "jxbt_utilities.h"
#include "xbt/dynar.h"
#include "../../simix/smx_private.h"
#include "JavaContext.hpp"
#include "jxbt_utilities.h"
#include "xbt/dynar.h"
#include "../../simix/smx_private.h"
+
extern JavaVM *__java_vm;
XBT_LOG_NEW_DEFAULT_CATEGORY(jmsg, "MSG for Java(TM)");
extern JavaVM *__java_vm;
XBT_LOG_NEW_DEFAULT_CATEGORY(jmsg, "MSG for Java(TM)");
@@
-29,18
+31,15
@@
simgrid::simix::ContextFactory* java_factory()
return new JavaContextFactory();
}
return new JavaContextFactory();
}
-JavaContextFactory::JavaContextFactory()
- : ContextFactory("JavaContextFactory")
+JavaContextFactory::JavaContextFactory(): ContextFactory("JavaContextFactory")
{
}
{
}
-JavaContextFactory::~JavaContextFactory()
-{
-}
+JavaContextFactory::~JavaContextFactory()=default;
JavaContext* JavaContextFactory::self()
{
JavaContext* JavaContextFactory::self()
{
- return
(JavaContext*) xbt_os_thread_get_extra_data(
);
+ return
static_cast<JavaContext*>(xbt_os_thread_get_extra_data()
);
}
JavaContext* JavaContextFactory::create_context(
}
JavaContext* JavaContextFactory::create_context(
@@
-83,17
+82,10
@@
JavaContext::JavaContext(std::function<void()> code,
"Failed to create context #%d. You may want to switch to Java coroutines to increase your limits (error: %s)."
"See the Install section of simgrid-java documentation (in doc/install.html) for more on coroutines.",
thread_amount, ex.what());
"Failed to create context #%d. You may want to switch to Java coroutines to increase your limits (error: %s)."
"See the Install section of simgrid-java documentation (in doc/install.html) for more on coroutines.",
thread_amount, ex.what());
- xbt_ex new_exception(str);
- free(str);
+ xbt_ex new_exception(XBT_THROW_POINT, str);
new_exception.category = ex.category;
new_exception.value = ex.value;
new_exception.category = ex.category;
new_exception.value = ex.value;
- new_exception.procname = ex.procname;
- new_exception.file = ex.file;
- new_exception.line = ex.line;
- new_exception.func = ex.func;
- new_exception.pid = ex.pid;
- new_exception.bt = ex.bt;
- throw new_exception;
+ std::throw_with_nested(std::move(new_exception));
}
} else {
this->thread = nullptr;
}
} else {
this->thread = nullptr;
@@
-113,13
+105,13
@@
JavaContext::~JavaContext()
void* JavaContext::wrapper(void *data)
{
void* JavaContext::wrapper(void *data)
{
- JavaContext* context =
(JavaContext*)data
;
+ JavaContext* context =
static_cast<JavaContext*>(data)
;
xbt_os_thread_set_extra_data(context);
//Attach the thread to the JVM
JNIEnv *env;
XBT_ATTRIB_UNUSED jint error =
xbt_os_thread_set_extra_data(context);
//Attach the thread to the JVM
JNIEnv *env;
XBT_ATTRIB_UNUSED jint error =
- __java_vm->AttachCurrentThread((void **)
&env, nullptr);
+ __java_vm->AttachCurrentThread((void **)&env, nullptr);
xbt_assert((error == JNI_OK), "The thread could not be attached to the JVM");
context->jenv = get_current_thread_env();
//Wait for the first scheduling round to happen.
xbt_assert((error == JNI_OK), "The thread could not be attached to the JVM");
context->jenv = get_current_thread_env();
//Wait for the first scheduling round to happen.