X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/88fad0aaff9eb463f048bfdfe4ad6218aba44ddb..c133313ec220e0c3c2f438e26b7485cef410b2ff:/include/simgrid/simix.hpp diff --git a/include/simgrid/simix.hpp b/include/simgrid/simix.hpp index 0e952a5d1f..eee08fc05d 100644 --- a/include/simgrid/simix.hpp +++ b/include/simgrid/simix.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2010, 2012-2018. The SimGrid Team. +/* Copyright (c) 2007-2018. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -49,8 +49,7 @@ namespace simix { * More importantly, this enforces a deterministic/reproducible ordering * of the operation with respect to other simcalls. */ -template -typename std::result_of::type kernelImmediate(F&& code) +template typename std::result_of::type simcall(F&& code) { // If we are in the maestro, we take the fast path and execute the // code directly without simcall mashalling/unmarshalling/dispatch: @@ -63,7 +62,6 @@ typename std::result_of::type kernelImmediate(F&& code) typedef typename std::result_of::type R; simgrid::xbt::Result result; simcall_run_kernel([&]{ - xbt_assert(SIMIX_is_maestro(), "Not in maestro"); simgrid::xbt::fulfillPromise(result, std::forward(code)); }); return result.get(); @@ -77,13 +75,13 @@ typedef std::function ActorCode; // Create ActorCode based on argv: typedef std::function args)> ActorCodeFactory; -XBT_PUBLIC void registerFunction(const char* name, ActorCodeFactory factory); +XBT_PUBLIC void register_function(const char* name, ActorCodeFactory factory); /** These functions will be called when we detect a deadlock: any remaining process is locked on an action * * If these functions manage to unlock some of the processes, then the deadlock will be avoided. */ -extern simgrid::xbt::signal onDeadlock; +XBT_PUBLIC_DATA simgrid::xbt::signal onDeadlock; } } @@ -105,7 +103,7 @@ typedef smx_actor_t (*smx_creation_func_t)( /* props */ std::map*, /* parent_process */ smx_actor_t); -extern "C" XBT_PUBLIC void SIMIX_function_register_process_create(smx_creation_func_t function); +XBT_PUBLIC void SIMIX_function_register_process_create(smx_creation_func_t function); XBT_PUBLIC smx_actor_t simcall_process_create(const char* name, std::function code, void* data, sg_host_t host, std::map* properties);