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
ContextBoost: make maestro_context_ private.
[simgrid.git]
/
src
/
kernel
/
context
/
ContextRaw.cpp
diff --git
a/src/kernel/context/ContextRaw.cpp
b/src/kernel/context/ContextRaw.cpp
index
8e83fa5
..
5695d19
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);
@@
-27,10
+27,11
@@
class RawContextFactory;
* preserve the signal mask when switching. This saves a system call (at least on Linux) on each context switch.
*/
class RawContext : public Context {
* preserve the signal mask when switching. This saves a system call (at least on Linux) on each context switch.
*/
class RawContext : public Context {
-pr
otected
:
+pr
ivate
:
void* stack_ = nullptr;
/** pointer to top the stack stack */
void* stack_top_ = nullptr;
void* stack_ = nullptr;
/** pointer to top the stack stack */
void* stack_top_ = nullptr;
+
public:
friend class RawContextFactory;
RawContext(std::function<void()> code,
public:
friend class RawContextFactory;
RawContext(std::function<void()> code,
@@
-267,7
+268,7
@@
RawContextFactory::RawContextFactory()
xbt_os_thread_key_create(&raw_worker_id_key);
// TODO, lazily init
raw_parmap = nullptr;
xbt_os_thread_key_create(&raw_worker_id_key);
// TODO, lazily init
raw_parmap = nullptr;
- raw_workers_context =
xbt_new(RawContext*, nthreads)
;
+ raw_workers_context =
new RawContext*[nthreads]
;
raw_maestro_context = nullptr;
#endif
// TODO: choose dynamically when SIMIX_context_get_parallel_threshold() > 1
raw_maestro_context = nullptr;
#endif
// TODO: choose dynamically when SIMIX_context_get_parallel_threshold() > 1
@@
-278,7
+279,7
@@
RawContextFactory::~RawContextFactory()
{
#if HAVE_THREAD_CONTEXTS
delete raw_parmap;
{
#if HAVE_THREAD_CONTEXTS
delete raw_parmap;
-
xbt_free(raw_workers_context)
;
+
delete[] raw_workers_context
;
#endif
}
#endif
}
@@
-408,7
+409,7
@@
void RawContext::suspend_parallel()
XBT_DEBUG("No more processes to run");
uintptr_t worker_id = (uintptr_t)
xbt_os_thread_get_specific(raw_worker_id_key);
XBT_DEBUG("No more processes to run");
uintptr_t worker_id = (uintptr_t)
xbt_os_thread_get_specific(raw_worker_id_key);
- next_context =
static_cast<RawContext*>(raw_workers_context[worker_id])
;
+ next_context =
raw_workers_context[worker_id]
;
XBT_DEBUG("Restoring worker stack %zu (working threads = %zu)",
worker_id, raw_threads_working);
}
XBT_DEBUG("Restoring worker stack %zu (working threads = %zu)",
worker_id, raw_threads_working);
}