aboutsummaryrefslogtreecommitdiffstats
path: root/fnet
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-23 16:33:59 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-02-23 16:33:59 +0000
commitd6c33e0b1230907b0977f44a31fbc860f21e1a09 (patch)
tree3e1fc8c4453222023e565ddf9d7dae944e336e14 /fnet
parent09039a14a0f27e7d3dadfc22cb72a8d0d10f9d65 (diff)
In order to properly detach supervisor from the transport, do an async close and proper sync of trasnport threads.
Diffstat (limited to 'fnet')
-rw-r--r--fnet/src/vespa/fnet/frt/supervisor.cpp3
-rw-r--r--fnet/src/vespa/fnet/transport_thread.cpp12
2 files changed, 6 insertions, 9 deletions
diff --git a/fnet/src/vespa/fnet/frt/supervisor.cpp b/fnet/src/vespa/fnet/frt/supervisor.cpp
index 74e77a0be1b..26402e98ab6 100644
--- a/fnet/src/vespa/fnet/frt/supervisor.cpp
+++ b/fnet/src/vespa/fnet/frt/supervisor.cpp
@@ -27,8 +27,9 @@ FRT_Supervisor::FRT_Supervisor(FNET_Transport *transport)
FRT_Supervisor::~FRT_Supervisor()
{
if (_connector != nullptr) {
- _connector->SubRef();
+ _connector->Owner()->Close(_connector, /* needref */ false);
}
+ _transport->sync();
}
FNET_Scheduler *
diff --git a/fnet/src/vespa/fnet/transport_thread.cpp b/fnet/src/vespa/fnet/transport_thread.cpp
index 1d55ac3b327..8bb3746c6ad 100644
--- a/fnet/src/vespa/fnet/transport_thread.cpp
+++ b/fnet/src/vespa/fnet/transport_thread.cpp
@@ -302,8 +302,7 @@ FNET_TransportThread::Add(FNET_IOComponent *comp, bool needRef)
if (needRef) {
comp->AddRef();
}
- PostEvent(&FNET_ControlPacket::IOCAdd,
- FNET_Context(comp));
+ PostEvent(&FNET_ControlPacket::IOCAdd, FNET_Context(comp));
}
@@ -313,8 +312,7 @@ FNET_TransportThread::EnableWrite(FNET_IOComponent *comp, bool needRef)
if (needRef) {
comp->AddRef();
}
- PostEvent(&FNET_ControlPacket::IOCEnableWrite,
- FNET_Context(comp));
+ PostEvent(&FNET_ControlPacket::IOCEnableWrite, FNET_Context(comp));
}
void
@@ -323,8 +321,7 @@ FNET_TransportThread::handshake_act(FNET_IOComponent *comp, bool needRef)
if (needRef) {
comp->AddRef();
}
- PostEvent(&FNET_ControlPacket::IOCHandshakeACT,
- FNET_Context(comp));
+ PostEvent(&FNET_ControlPacket::IOCHandshakeACT, FNET_Context(comp));
}
void
@@ -333,8 +330,7 @@ FNET_TransportThread::Close(FNET_IOComponent *comp, bool needRef)
if (needRef) {
comp->AddRef();
}
- PostEvent(&FNET_ControlPacket::IOCClose,
- FNET_Context(comp));
+ PostEvent(&FNET_ControlPacket::IOCClose, FNET_Context(comp));
}