summaryrefslogtreecommitdiffstats
path: root/fnet
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-12-21 15:34:04 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-12-21 15:34:04 +0000
commit6d01030b16a77b86a9ca59029dced69bbacb1c83 (patch)
tree00dadcd7e6023c82979d3bbe05b70ee8da52f242 /fnet
parentd097b73853e8e8dbaaf91d7c7fcca94c06d69f27 (diff)
Ensure that transport thread is woken up explicit for every FNET_CMD_EXECUTE command
Diffstat (limited to 'fnet')
-rw-r--r--fnet/src/vespa/fnet/transport.h8
-rw-r--r--fnet/src/vespa/fnet/transport_thread.cpp4
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;