forked from lix-project/hydra
hydra-evaluator: Allow setting the maximum number of concurrent evaluations
This commit is contained in:
parent
4e27796eba
commit
09a4c9fad2
|
@ -1,6 +1,7 @@
|
||||||
#include "shared.hh"
|
|
||||||
#include "db.hh"
|
#include "db.hh"
|
||||||
|
#include "hydra-config.hh"
|
||||||
#include "pool.hh"
|
#include "pool.hh"
|
||||||
|
#include "shared.hh"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
@ -16,6 +17,8 @@ typedef std::pair<std::string, std::string> JobsetName;
|
||||||
|
|
||||||
struct Evaluator
|
struct Evaluator
|
||||||
{
|
{
|
||||||
|
std::unique_ptr<Config> config;
|
||||||
|
|
||||||
nix::Pool<Connection> dbPool;
|
nix::Pool<Connection> dbPool;
|
||||||
|
|
||||||
struct Jobset
|
struct Jobset
|
||||||
|
@ -30,7 +33,7 @@ struct Evaluator
|
||||||
|
|
||||||
std::experimental::optional<JobsetName> evalOne;
|
std::experimental::optional<JobsetName> evalOne;
|
||||||
|
|
||||||
size_t maxEvals = 4;
|
const size_t maxEvals;
|
||||||
|
|
||||||
struct State
|
struct State
|
||||||
{
|
{
|
||||||
|
@ -45,6 +48,11 @@ struct Evaluator
|
||||||
|
|
||||||
const time_t notTriggered = std::numeric_limits<time_t>::max();
|
const time_t notTriggered = std::numeric_limits<time_t>::max();
|
||||||
|
|
||||||
|
Evaluator()
|
||||||
|
: config(std::make_unique<::Config>())
|
||||||
|
, maxEvals(std::max((size_t) 1, (size_t) config->getIntOption("max_concurrent_evals", 4)))
|
||||||
|
{ }
|
||||||
|
|
||||||
void readJobsets()
|
void readJobsets()
|
||||||
{
|
{
|
||||||
auto conn(dbPool.get());
|
auto conn(dbPool.get());
|
||||||
|
|
Loading…
Reference in a new issue