-/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2020. 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. */
#include "simgrid/s4u/Actor.hpp"
#include "src/simix/popping_private.hpp"
-#include "src/surf/PropertyHolder.hpp"
+#include "xbt/PropertyHolder.hpp"
#include <boost/intrusive/list.hpp>
#include <functional>
#include <list>
namespace kernel {
namespace actor {
-class XBT_PUBLIC ActorImpl : public surf::PropertyHolder {
+class XBT_PUBLIC ActorImpl : public xbt::PropertyHolder {
s4u::Host* host_ = nullptr; /* the host on which the actor is running */
// XBT_DEPRECATED_v329
void* userdata_ = nullptr; /* kept for compatibility, it should be replaced with moddata */
private:
s4u::Actor piface_; // Our interface is part of ourselves
+ void cleanup_from_simix();
void undaemonize();
public:
s4u::Actor* ciface() { return &piface_; }
ActorImplPtr init(const std::string& name, s4u::Host* host);
- ActorImpl* start(const simix::ActorCode& code);
+ ActorImpl* start(const ActorCode& code);
- static ActorImplPtr create(const std::string& name, const simix::ActorCode& code, void* data, s4u::Host* host,
+ static ActorImplPtr create(const std::string& name, const ActorCode& code, void* data, s4u::Host* host,
const std::unordered_map<std::string, std::string>* properties, ActorImpl* parent_actor);
static ActorImplPtr attach(const std::string& name, void* data, s4u::Host* host,
const std::unordered_map<std::string, std::string>* properties);
s4u::Actor* restart();
void suspend();
void resume();
- activity::ActivityImplPtr join(ActorImpl* actor, double timeout);
+ activity::ActivityImplPtr join(const ActorImpl* actor, double timeout);
activity::ActivityImplPtr sleep(double duration);
/** Ask the actor to throw an exception right away */
void throw_exception(std::exception_ptr e);
extern void (*SMPI_switch_data_segment)(simgrid::s4u::ActorPtr actor);
+XBT_PUBLIC smx_actor_t simcall_process_create(const std::string& name, const simgrid::kernel::actor::ActorCode& code,
+ void* data, sg_host_t host,
+ std::unordered_map<std::string, std::string>* properties);
+
#endif