From 81588aeededcff1407c760226b43f347eb832b39 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Fri, 6 May 2016 23:02:51 +0200 Subject: [PATCH] kill smx_private.hpp We already have a smx_private.h --- src/bindings/java/JavaContext.hpp | 2 +- src/s4u/s4u_host.cpp | 2 +- src/simgrid/host.cpp | 2 -- src/simix/Context.cpp | 3 +- src/simix/ContextRaw.cpp | 1 - src/simix/ContextThread.cpp | 1 - src/simix/ContextUnix.cpp | 1 - src/simix/libsmx.cpp | 1 - src/simix/smx_context.cpp | 1 - src/simix/smx_global.cpp | 1 - src/simix/smx_private.h | 33 +++++++++++++------- src/simix/smx_private.hpp | 50 ------------------------------- src/simix/smx_process.cpp | 1 - src/xbt/parmap.cpp | 1 - tools/cmake/DefinePackages.cmake | 1 - 15 files changed, 26 insertions(+), 75 deletions(-) delete mode 100644 src/simix/smx_private.hpp diff --git a/src/bindings/java/JavaContext.hpp b/src/bindings/java/JavaContext.hpp index dfbf821cdb..9a07ff8d7e 100644 --- a/src/bindings/java/JavaContext.hpp +++ b/src/bindings/java/JavaContext.hpp @@ -15,7 +15,7 @@ #include #include -#include "src/simix/smx_private.hpp" +#include "src/simix/smx_private.h" #include "jmsg.h" #include "jmsg_process.h" diff --git a/src/s4u/s4u_host.cpp b/src/s4u/s4u_host.cpp index 8d5788d0ec..5020d7dc8b 100644 --- a/src/s4u/s4u_host.cpp +++ b/src/s4u/s4u_host.cpp @@ -15,7 +15,7 @@ #include "xbt/log.h" #include "src/msg/msg_private.h" #include "src/simix/smx_process_private.h" -#include "src/simix/smx_private.hpp" +#include "src/simix/smx_private.h" #include "src/surf/cpu_interface.hpp" #include "simgrid/s4u/host.hpp" #include "simgrid/s4u/storage.hpp" diff --git a/src/simgrid/host.cpp b/src/simgrid/host.cpp index 881a975f11..78ce58d310 100644 --- a/src/simgrid/host.cpp +++ b/src/simgrid/host.cpp @@ -12,8 +12,6 @@ #include "src/surf/HostImpl.hpp" #include "surf/surf.h" // routing_get_network_element_type FIXME:killme -#include "src/simix/smx_private.hpp" - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sg_host, sd, "Logging specific to sg_hosts"); size_t sg_host_count() diff --git a/src/simix/Context.cpp b/src/simix/Context.cpp index be5da21828..f86acfdf6c 100644 --- a/src/simix/Context.cpp +++ b/src/simix/Context.cpp @@ -14,8 +14,7 @@ #include "mc/mc.h" -#include -#include +#include "src/simix/smx_private.h" void SIMIX_process_set_cleanup_function( smx_process_t process, void_pfn_smxprocess_t cleanup) diff --git a/src/simix/ContextRaw.cpp b/src/simix/ContextRaw.cpp index 67ebc5438c..88d05bf202 100644 --- a/src/simix/ContextRaw.cpp +++ b/src/simix/ContextRaw.cpp @@ -23,7 +23,6 @@ #include "xbt/dynar.h" #include "smx_private.h" -#include "smx_private.hpp" #include "mc/mc.h" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context); diff --git a/src/simix/ContextThread.cpp b/src/simix/ContextThread.cpp index c020d560c1..49ba1b06f2 100644 --- a/src/simix/ContextThread.cpp +++ b/src/simix/ContextThread.cpp @@ -14,7 +14,6 @@ #include "xbt/xbt_os_thread.h" #include "src/xbt_modinter.h" /* prototype of os thread module's init/exit in XBT */ -#include "src/simix/smx_private.hpp" #include "src/simix/ContextThread.hpp" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context); diff --git a/src/simix/ContextUnix.cpp b/src/simix/ContextUnix.cpp index 8852c73597..3d9e4bbad8 100644 --- a/src/simix/ContextUnix.cpp +++ b/src/simix/ContextUnix.cpp @@ -13,7 +13,6 @@ #include "xbt/parmap.h" #include "src/simix/smx_private.h" -#include "src/simix/smx_private.hpp" #include "src/internal_config.h" #include "mc/mc.h" diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index e052a98fdb..3b36d09a14 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -21,7 +21,6 @@ #include "xbt/ex.h" #include "mc/mc.h" #include "src/simix/smx_host_private.h" -#include "src/simix/smx_private.hpp" #include diff --git a/src/simix/smx_context.cpp b/src/simix/smx_context.cpp index 83424f0abb..7205f47836 100644 --- a/src/simix/smx_context.cpp +++ b/src/simix/smx_context.cpp @@ -17,7 +17,6 @@ #include "xbt/swag.h" #include "xbt/xbt_os_thread.h" #include "smx_private.h" -#include "smx_private.hpp" #include "simgrid/sg_config.h" #include "src/internal_config.h" #include "simgrid/modelchecker.h" diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index 9b31320d6a..8489bf628c 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -12,7 +12,6 @@ #include "src/surf/storage_interface.hpp" #include "src/surf/xml/platf.hpp" #include "smx_private.h" -#include "smx_private.hpp" #include "xbt/str.h" #include "xbt/ex.h" /* ex_backtrace_display */ #include "mc/mc.h" diff --git a/src/simix/smx_private.h b/src/simix/smx_private.h index 5f08cc025a..d0384513a9 100644 --- a/src/simix/smx_private.h +++ b/src/simix/smx_private.h @@ -36,13 +36,15 @@ namespace simgrid { namespace simix { -/* Hack: let msg load directly the right factory - * - * This is a factory of factory! How nice is this? - */ +/* This allows Java to hijack the context factory (Java induces factories of factory :) */ typedef ContextFactory* (*ContextFactoryInitializer)(void); XBT_PUBLIC_DATA(ContextFactoryInitializer) factory_initializer; +XBT_PRIVATE ContextFactory* thread_factory(); +XBT_PRIVATE ContextFactory* sysv_factory(); +XBT_PRIVATE ContextFactory* raw_factory(); +XBT_PRIVATE ContextFactory* boost_factory(); + } } @@ -115,23 +117,34 @@ XBT_PUBLIC_DATA(char sigsegv_stack[SIGSTKSZ]); # define smx_context_usable_stack_size smx_context_stack_size #endif +/** @brief Executes all the processes to run (in parallel if possible). */ +static inline void SIMIX_context_runall(void) +{ + if (!xbt_dynar_is_empty(simix_global->process_to_run)) + simix_global->context_factory->run_all(); +} + +/** @brief returns the current running context */ +static inline smx_context_t SIMIX_context_self(void) +{ + if (simix_global && simix_global->context_factory) + return simix_global->context_factory->self(); + else + return nullptr; +} + XBT_PRIVATE void *SIMIX_context_stack_new(void); XBT_PRIVATE void SIMIX_context_stack_delete(void *stack); XBT_PRIVATE void SIMIX_context_set_current(smx_context_t context); XBT_PRIVATE smx_context_t SIMIX_context_get_current(void); -/* ****************************** */ -/* context manipulation functions */ -/* ****************************** */ - XBT_PUBLIC(int) SIMIX_process_get_maxpid(void); XBT_PRIVATE void SIMIX_post_create_environment(void); // FIXME, Dirty hack for SMPI+MSG -XBT_PRIVATE void SIMIX_process_set_cleanup_function( - smx_process_t process, void_pfn_smxprocess_t cleanup); +XBT_PRIVATE void SIMIX_process_set_cleanup_function(smx_process_t process, void_pfn_smxprocess_t cleanup); SG_END_DECL() diff --git a/src/simix/smx_private.hpp b/src/simix/smx_private.hpp deleted file mode 100644 index abea06bf70..0000000000 --- a/src/simix/smx_private.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2007-2010, 2012-2015. The SimGrid Team. - * All rights reserved. */ - -/* This program is free software; you can redistribute it and/or modify it - * under the terms of the license (GNU LGPL) which comes with this package. */ - -#ifndef SIMGRID_SIMIX_PRIVATE_HPP -#define SIMGRID_SIMIX_PRIVATE_HPP - -#include -#include "smx_private.h" -#include "src/simix/popping_private.h" - -/** @brief Executes all the processes to run (in parallel if possible). */ -static inline void SIMIX_context_runall(void) -{ - if (!xbt_dynar_is_empty(simix_global->process_to_run)) - simix_global->context_factory->run_all(); -} - -/** @brief returns the current running context */ -static inline smx_context_t SIMIX_context_self(void) -{ - if (simix_global && simix_global->context_factory) - return simix_global->context_factory->self(); - else - return nullptr; -} - -namespace simgrid { -namespace simix { - -XBT_PRIVATE ContextFactory* thread_factory(); -XBT_PRIVATE ContextFactory* sysv_factory(); -XBT_PRIVATE ContextFactory* raw_factory(); -XBT_PRIVATE ContextFactory* boost_factory(); - -template inline -R simcall(e_smx_simcall_t call, Args&&... args) -{ - smx_process_t self = SIMIX_process_self(); - marshal(&self->simcall, call, std::forward(args)...); - simcall_call(self); - return unmarshal(self->simcall.result); -} - -} -} - -#endif diff --git a/src/simix/smx_process.cpp b/src/simix/smx_process.cpp index 530d7c9222..450d081107 100644 --- a/src/simix/smx_process.cpp +++ b/src/simix/smx_process.cpp @@ -12,7 +12,6 @@ #include "mc/mc.h" #include "src/mc/mc_replay.h" #include "src/mc/Client.hpp" -#include "src/simix/smx_private.hpp" #include "src/msg/msg_private.h" #include "src/simix/SynchroSleep.hpp" diff --git a/src/xbt/parmap.cpp b/src/xbt/parmap.cpp index 95abdcea15..b4560478e1 100644 --- a/src/xbt/parmap.cpp +++ b/src/xbt/parmap.cpp @@ -27,7 +27,6 @@ #include "xbt/xbt_os_thread.h" #include "xbt/sysdep.h" #include "src/simix/smx_private.h" -#include "src/simix/smx_private.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_parmap, xbt, "parmap: parallel map"); diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index 1ea2fac11d..2a9c547d4e 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -29,7 +29,6 @@ set(EXTRA_DIST src/simix/smx_io_private.h src/simix/smx_network_private.h src/simix/smx_private.h - src/simix/smx_private.hpp src/simix/smx_process_private.h src/simix/smx_synchro_private.h src/simix/Synchro.h -- 2.20.1