Do not share ofi context across sockets

This commit is contained in:
Dennis Klein
2018-11-26 02:07:48 +01:00
committed by Dennis Klein
parent b31ab1cc48
commit a08a34acd5
4 changed files with 64 additions and 52 deletions

View File

@@ -82,6 +82,9 @@ class Socket final : public fair::mq::Socket
private:
Context& fContext;
std::unique_ptr<asiofi::info> fOfiInfo;
std::unique_ptr<asiofi::fabric> fOfiFabric;
std::unique_ptr<asiofi::domain> fOfiDomain;
std::unique_ptr<asiofi::passive_endpoint> fPassiveEndpoint;
std::unique_ptr<asiofi::connected_endpoint> fDataEndpoint, fControlEndpoint;
std::string fId;
@@ -89,8 +92,8 @@ class Socket final : public fair::mq::Socket
std::atomic<unsigned long> fBytesRx;
std::atomic<unsigned long> fMessagesTx;
std::atomic<unsigned long> fMessagesRx;
Context::Address fRemoteAddr;
Context::Address fLocalAddr;
Address fRemoteAddr;
Address fLocalAddr;
boost::asio::io_service::strand fIoStrand;
int fSndTimeout;
int fRcvTimeout;
@@ -111,6 +114,7 @@ class Socket final : public fair::mq::Socket
// auto WaitForControlPeer() -> void;
// auto AnnounceDataAddress() -> void;
auto InitOfi(Address addr) -> void;
auto BindControlEndpoint() -> void;
auto BindDataEndpoint() -> void;
auto ConnectControlEndpoint() -> void;