friend simgrid::kernel::actor::ActorImpl;
friend simgrid::kernel::activity::MailboxImpl;
- kernel::actor::ActorImpl* pimpl_ = nullptr;
+ kernel::actor::ActorImpl* const pimpl_ = nullptr;
explicit Actor(smx_actor_t pimpl) : pimpl_(pimpl) {}
class XBT_PUBLIC ConditionVariable {
private:
friend simgrid::kernel::activity::ConditionVariableImpl;
- smx_cond_t cond_;
+ simgrid::kernel::activity::ConditionVariableImpl* const cond_;
+
+ explicit ConditionVariable(simgrid::kernel::activity::ConditionVariableImpl* cond) : cond_(cond) {}
- explicit ConditionVariable(smx_cond_t cond) : cond_(cond) {}
public:
ConditionVariable(ConditionVariable const&) = delete;
ConditionVariable& operator=(ConditionVariable const&) = delete;
#ifndef DOXYGEN
/** @deprecated See Comm::get_mailbox() */
- XBT_ATTRIB_DEPRECATED_v323("Please use Comm::get_mailbox()") ConditionVariablePtr createConditionVariable()
+ XBT_ATTRIB_DEPRECATED_v323("Please use ConditionVariableImpl::create()") ConditionVariablePtr
+ createConditionVariable()
{
return create();
}
void set_config(std::string str);
private:
- simgrid::kernel::EngineImpl* pimpl;
+ simgrid::kernel::EngineImpl* const pimpl;
static s4u::Engine* instance_;
//////////////// Deprecated functions
friend simgrid::s4u::Comm;
friend simgrid::kernel::activity::MailboxImpl;
- simgrid::kernel::activity::MailboxImpl* pimpl_;
+ simgrid::kernel::activity::MailboxImpl* const pimpl_;
explicit Mailbox(kernel::activity::MailboxImpl * mbox) : pimpl_(mbox) {}
friend simgrid::s4u::ConditionVariable;
friend simgrid::kernel::activity::MutexImpl;
- simgrid::kernel::activity::MutexImpl* pimpl_;
+ simgrid::kernel::activity::MutexImpl* const pimpl_;
explicit Mutex(simgrid::kernel::activity::MutexImpl* mutex) : pimpl_(mutex) {}
/* refcounting */
kernel::routing::NetZoneImpl* get_impl() { return pimpl_; }
private:
- kernel::routing::NetZoneImpl* pimpl_;
+ kernel::routing::NetZoneImpl* const pimpl_;
std::unordered_map<std::string, std::string> properties_;
public:
*
*/
class XBT_PUBLIC VirtualMachine : public s4u::Host {
- simgrid::vm::VirtualMachineImpl* pimpl_vm_ = nullptr;
+ simgrid::vm::VirtualMachineImpl* const pimpl_vm_ = nullptr;
virtual ~VirtualMachine();
public:
actor_->finished_ = true;
SIMIX_process_on_exit_runall(actor_);
- /* cancel non-blocking communications */
+ /* cancel non-blocking activities */
while (not actor_->comms.empty()) {
smx_activity_t synchro = actor_->comms.front();
actor_->comms.pop_front();
Engine* Engine::instance_ = nullptr; /* That singleton is awful, but I don't see no other solution right now. */
-Engine::Engine(int* argc, char** argv)
+Engine::Engine(int* argc, char** argv) : pimpl(new kernel::EngineImpl())
{
xbt_assert(s4u::Engine::instance_ == nullptr,
"It is currently forbidden to create more than one instance of s4u::Engine");
TRACE_global_init();
SIMIX_global_init(argc, argv);
- pimpl = new kernel::EngineImpl();
s4u::Engine::instance_ = this;
}