#include <simgrid/simix.h>
#include <xbt/xbt_os_thread.h>
-#include "src/simix/smx_private.hpp"
+#include "src/simix/smx_private.h"
#include "jmsg.h"
#include "jmsg_process.h"
#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"
#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()
#include "mc/mc.h"
-#include <src/simix/smx_private.h>
-#include <src/simix/smx_private.hpp>
+#include "src/simix/smx_private.h"
void SIMIX_process_set_cleanup_function(
smx_process_t process, void_pfn_smxprocess_t cleanup)
#include "xbt/dynar.h"
#include "smx_private.h"
-#include "smx_private.hpp"
#include "mc/mc.h"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
#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);
#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"
#include "xbt/ex.h"
#include "mc/mc.h"
#include "src/simix/smx_host_private.h"
-#include "src/simix/smx_private.hpp"
#include <simgrid/simix.hpp>
#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"
#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"
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();
+
}
}
# 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()
+++ /dev/null
-/* 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 <simgrid/simix.hpp>
-#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<class R, class... Args> inline
-R simcall(e_smx_simcall_t call, Args&&... args)
-{
- smx_process_t self = SIMIX_process_self();
- marshal(&self->simcall, call, std::forward<Args>(args)...);
- simcall_call(self);
- return unmarshal<R>(self->simcall.result);
-}
-
-}
-}
-
-#endif
#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"
#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");
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