diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-02-23 16:33:59 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-02-23 16:33:59 +0000 |
commit | d6c33e0b1230907b0977f44a31fbc860f21e1a09 (patch) | |
tree | 3e1fc8c4453222023e565ddf9d7dae944e336e14 /fnet | |
parent | 09039a14a0f27e7d3dadfc22cb72a8d0d10f9d65 (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.cpp | 3 | ||||
-rw-r--r-- | fnet/src/vespa/fnet/transport_thread.cpp | 12 |
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)); } |