-/* context_base - Code factorization accross context switching implementations */
+/* context_base - Code factorization across context switching implementations */
/* Copyright (c) 2010. The SimGrid Team.
* All rights reserved. */
#include "xbt/function_types.h"
+#include "simix/simix.h"
#include "simix/context.h"
+#include "simix/private.h"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(bindings);
(*factory)->runall = NULL;
(*factory)->self = smx_ctx_base_self;
(*factory)->get_data = smx_ctx_base_get_data;
- (*factory)->get_thread_id = smx_ctx_base_get_thread_id;
(*factory)->name = "base context factory";
}
{
smx_context_t context = xbt_malloc0(size);
- /* If the user provided a function for the process then use it
- otherwise is the context for maestro and we should set it as the
+ /* If the user provided a function for the process then use it.
+ Otherwise, it is the context for maestro and we should set it as the
current context */
if (code) {
context->cleanup_func = cleanup_func;
context->argc = argc;
context->argv = argv;
context->code = code;
- }else{
- smx_current_context = context;
+ } else {
+ SIMIX_context_set_current(context);
}
context->data = data;
{
if (context->cleanup_func)
(*(context->cleanup_func)) (context->data);
+ context->iwannadie = 0;
+ SIMIX_req_process_cleanup(context->data);
}
smx_context_t smx_ctx_base_self(void)
{
- return smx_current_context;
+ return SIMIX_context_get_current();
}
void *smx_ctx_base_get_data(smx_context_t context)
{
return context->data;
}
-
-int smx_ctx_base_get_thread_id()
-{
- return 0;
-}