/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/filestore/tools/testing/loadtest/lib/executor.h
40 строк
824 B
asorotsky
opensource filestore root; p #2;
18 дек 2023, 18:26
18 дек 2023, 18:26
fab997d
Код
Авторство
О чём код?
#pragma once #include "public.h" #include <library/cpp/threading/future/future.h> #include <util/generic/vector.h> #include <util/system/event.h> #include <util/system/spinlock.h> #include <util/thread/pool.h> #include <functional> namespace NCloud::NFileStore::NLoadTest { //////////////////////////////////////////////////////////////////////////////// class TExecutor { using TActionList = TVector<std::function<void()>>; private: const TAppContext& Context; const TActionList Actions; TAdaptiveLock Lock; TAdaptiveThreadPool ThreadPool; TManualEvent ReadyEvent; ui32 DoneCount = 0; public: TExecutor(const TAppContext& ctx, TActionList actions); void Run(); private: NThreading::TFuture<void> RunAction(ui32 action); }; } // namespace NCloud::NFileStore::NLoadTest