summaryrefslogtreecommitdiffstats
path: root/fnet
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@yahooinc.com>2022-05-06 09:33:13 +0000
committerHåvard Pettersen <havardpe@yahooinc.com>2022-05-06 09:33:13 +0000
commit50bebcf075fff663a11186cdf249f852e1058407 (patch)
treeb18eb15713246c573a786d13359b022b72e5f0aa /fnet
parenteed0a45c502785321272fb5e5166b0c188daef04 (diff)
remember port number
to avoid race on shutdown
Diffstat (limited to 'fnet')
-rw-r--r--fnet/src/vespa/fnet/connector.cpp5
-rw-r--r--fnet/src/vespa/fnet/connector.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/fnet/src/vespa/fnet/connector.cpp b/fnet/src/vespa/fnet/connector.cpp
index 1d2002d6861..f5ce49f2019 100644
--- a/fnet/src/vespa/fnet/connector.cpp
+++ b/fnet/src/vespa/fnet/connector.cpp
@@ -20,14 +20,15 @@ FNET_Connector::FNET_Connector(FNET_TransportThread *owner,
: FNET_IOComponent(owner, server_socket.get_fd(), spec, /* time-out = */ false),
_streamer(streamer),
_serverAdapter(serverAdapter),
- _server_socket(std::move(server_socket))
+ _server_socket(std::move(server_socket)),
+ _cached_port(_server_socket.address().port())
{
}
uint32_t
FNET_Connector::GetPortNumber() const {
- return _server_socket.address().port();
+ return _cached_port;
}
diff --git a/fnet/src/vespa/fnet/connector.h b/fnet/src/vespa/fnet/connector.h
index ff93a0a6a92..858313d6582 100644
--- a/fnet/src/vespa/fnet/connector.h
+++ b/fnet/src/vespa/fnet/connector.h
@@ -18,6 +18,7 @@ private:
FNET_IPacketStreamer *_streamer;
FNET_IServerAdapter *_serverAdapter;
vespalib::ServerSocket _server_socket;
+ uint32_t _cached_port;
FNET_Connector(const FNET_Connector &);
FNET_Connector &operator=(const FNET_Connector &);