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
Sort include lists according to clang-format.
[simgrid.git]
/
src
/
kernel
/
context
/
ContextRaw.cpp
diff --git
a/src/kernel/context/ContextRaw.cpp
b/src/kernel/context/ContextRaw.cpp
index
53726aa
..
1df1de7
100644
(file)
--- a/
src/kernel/context/ContextRaw.cpp
+++ b/
src/kernel/context/ContextRaw.cpp
@@
-7,8
+7,8
@@
#include "xbt/parmap.hpp"
#include "xbt/parmap.hpp"
-#include "src/simix/smx_private.h"
#include "mc/mc.h"
#include "mc/mc.h"
+#include "src/simix/smx_private.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
@@
-270,7
+270,7
@@
RawContextFactory::RawContextFactory()
raw_workers_context = xbt_new(RawContext*, nthreads);
raw_maestro_context = nullptr;
#endif
raw_workers_context = xbt_new(RawContext*, nthreads);
raw_maestro_context = nullptr;
#endif
- // TODO
, if(SIMIX_context_get_parallel_threshold() > 1) => choose dynamically
+ // TODO
: choose dynamically when SIMIX_context_get_parallel_threshold() > 1
}
}
}
}
@@
-291,8
+291,13
@@
RawContext* RawContextFactory::create_context(std::function<void()> code,
void RawContext::wrapper(void* arg)
{
RawContext* context = static_cast<RawContext*>(arg);
void RawContext::wrapper(void* arg)
{
RawContext* context = static_cast<RawContext*>(arg);
- (*context)();
- context->stop();
+ try {
+ (*context)();
+ context->Context::stop();
+ } catch (StopRequest const&) {
+ XBT_DEBUG("Caught a StopRequest");
+ }
+ context->suspend();
}
RawContext::RawContext(std::function<void()> code,
}
RawContext::RawContext(std::function<void()> code,
@@
-323,7
+328,7
@@
RawContext::~RawContext()
void RawContext::stop()
{
Context::stop();
void RawContext::stop()
{
Context::stop();
- th
is->suspend
();
+ th
row StopRequest
();
}
void RawContextFactory::run_all()
}
void RawContextFactory::run_all()