diff options
Diffstat (limited to 'staging_vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp')
-rw-r--r-- | staging_vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/staging_vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp b/staging_vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp index 6d42895bffc..a0c2f0ac237 100644 --- a/staging_vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp +++ b/staging_vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp @@ -15,16 +15,17 @@ constexpr uint32_t stackSize = 128 * 1024; std::unique_ptr<ISequencedTaskExecutor> -SequencedTaskExecutor::create(uint32_t threads, uint32_t taskLimit, OptimizeFor optimize) +SequencedTaskExecutor::create(uint32_t threads, uint32_t taskLimit, OptimizeFor optimize, uint32_t kindOfWatermark, duration reactionTime) { if (optimize == OptimizeFor::ADAPTIVE) { - return std::make_unique<AdaptiveSequencedExecutor>(threads, threads, 0, taskLimit); + return std::make_unique<AdaptiveSequencedExecutor>(threads, threads, kindOfWatermark, taskLimit); } else { auto executors = std::make_unique<std::vector<std::unique_ptr<SyncableThreadExecutor>>>(); executors->reserve(threads); for (uint32_t id = 0; id < threads; ++id) { if (optimize == OptimizeFor::THROUGHPUT) { - executors->push_back(std::make_unique<SingleExecutor>(taskLimit)); + uint32_t watermark = kindOfWatermark == 0 ? taskLimit / 10 : kindOfWatermark; + executors->push_back(std::make_unique<SingleExecutor>(taskLimit, watermark, reactionTime)); } else { executors->push_back(std::make_unique<BlockingThreadStackExecutor>(1, stackSize, taskLimit)); } |