Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove SIMIX_host_get_current_power_peak() and SIMIX_host_get_power_peak_at()
[simgrid.git] / src / simix / BoostContext.hpp
index ec4ad79..c2df0d1 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef SIMGRID_SIMIX_BOOST_CONTEXT_HPP
 #define SIMGRID_SIMIX_BOOST_CONTEXT_HPP
 
+#include <functional>
 #include <vector>
 
 #include <xbt/parmap.h>
@@ -43,12 +44,13 @@ protected:
   void* stack_ = nullptr;
 public:
   friend BoostContextFactory;
-  BoostContext(xbt_main_func_t code,
-          int argc, char **argv,
+  BoostContext(std::function<void()> code,
           void_pfn_smxprocess_t cleanup_func,
           smx_process_t process);
   ~BoostContext();
   void resume();
+private:
+  static void wrapper(int first, ...);
 };
 
 class BoostContextFactory : public ContextFactory {
@@ -59,10 +61,8 @@ public:
 
   BoostContextFactory();
   virtual ~BoostContextFactory();
-  virtual Context* create_context(
-    xbt_main_func_t, int, char **, void_pfn_smxprocess_t,
-    smx_process_t process
-    ) override;
+  virtual Context* create_context(std::function<void()> code,
+    void_pfn_smxprocess_t, smx_process_t process) override;
   void run_all() override;
 };