diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-21 15:34:04 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-21 15:34:04 +0000 |
commit | 6d01030b16a77b86a9ca59029dced69bbacb1c83 (patch) | |
tree | 00dadcd7e6023c82979d3bbe05b70ee8da52f242 /fnet/src | |
parent | d097b73853e8e8dbaaf91d7c7fcca94c06d69f27 (diff) |
Ensure that transport thread is woken up explicit for every FNET_CMD_EXECUTE command
Diffstat (limited to 'fnet/src')
-rw-r--r-- | fnet/src/vespa/fnet/transport.h | 8 | ||||
-rw-r--r-- | fnet/src/vespa/fnet/transport_thread.cpp | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/fnet/src/vespa/fnet/transport.h b/fnet/src/vespa/fnet/transport.h index d6e4aefb02b..3f9328296d6 100644 --- a/fnet/src/vespa/fnet/transport.h +++ b/fnet/src/vespa/fnet/transport.h @@ -89,7 +89,7 @@ private: FNET_Config _config; vespalib::AsyncResolver::SP _resolver; vespalib::CryptoEngine::SP _crypto; - fnet::TimeTools::SP _time_tools; + fnet::TimeTools::SP _time_tools; uint32_t _num_threads; }; @@ -108,10 +108,10 @@ private: vespalib::AsyncResolver::SP _async_resolver; vespalib::CryptoEngine::SP _crypto_engine; - fnet::TimeTools::SP _time_tools; + fnet::TimeTools::SP _time_tools; std::unique_ptr<vespalib::SyncableThreadExecutor> _work_pool; - Threads _threads; - const FNET_Config _config; + Threads _threads; + const FNET_Config _config; /** * Wait for all pending resolve requests. diff --git a/fnet/src/vespa/fnet/transport_thread.cpp b/fnet/src/vespa/fnet/transport_thread.cpp index d46d174c670..590b6acbfff 100644 --- a/fnet/src/vespa/fnet/transport_thread.cpp +++ b/fnet/src/vespa/fnet/transport_thread.cpp @@ -127,7 +127,9 @@ FNET_TransportThread::PostEvent(FNET_ControlPacket *cpacket, _queue.QueuePacket_NoLock(cpacket, context); qLen = _queue.GetPacketCnt_NoLock(); } - if (qLen == getConfig()._events_before_wakeup) { + if ((qLen == getConfig()._events_before_wakeup) || + (cpacket->GetCommand() == FNET_ControlPacket::FNET_CMD_EXECUTE)) + { _selector.wakeup(); } return true; |