summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/erebos/network.h3
-rw-r--r--src/network.cpp3
-rw-r--r--src/network.h2
3 files changed, 6 insertions, 2 deletions
diff --git a/include/erebos/network.h b/include/erebos/network.h
index f2ae191..252c3c7 100644
--- a/include/erebos/network.h
+++ b/include/erebos/network.h
@@ -16,6 +16,9 @@ public:
Server(const std::shared_ptr<Priv> &);
~Server();
+ Server(const Server &) = delete;
+ Server & operator=(const Server &) = delete;
+
const Head<LocalState> & localHead() const;
const Bhv<LocalState> & localState() const;
diff --git a/src/network.cpp b/src/network.cpp
index 2db450c..1e95571 100644
--- a/src/network.cpp
+++ b/src/network.cpp
@@ -269,7 +269,8 @@ Server::Priv::~Priv()
shared_ptr<Server::Priv> Server::Priv::getptr()
{
- return shared_from_this();
+ // Creating temporary object, so just use null deleter
+ return shared_ptr<Priv>(this, [](Priv *){});
}
void Server::Priv::doListen()
diff --git a/src/network.h b/src/network.h
index c4f3d6f..b2cd8be 100644
--- a/src/network.h
+++ b/src/network.h
@@ -136,7 +136,7 @@ struct WaitingRef
optional<Ref> check(ReplyBuilder &);
};
-struct Server::Priv : enable_shared_from_this<Server::Priv>
+struct Server::Priv
{
Priv(const Head<LocalState> & local, const Identity & self,
vector<unique_ptr<Service>> && svcs);