Update to latest nixUnstable

This commit is contained in:
Eelco Dolstra 2017-09-14 17:22:48 +02:00
parent d676c91bd5
commit 6517446c34
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
4 changed files with 12 additions and 30 deletions

View file

@ -231,9 +231,9 @@ void State::buildRemote(ref<Store> destStore,
/* Copy the input closure. */
if (/* machine->sshName != "localhost" */ true) {
auto mc1 = std::make_shared<MaintainCount>(nrStepsWaiting);
auto mc1 = std::make_shared<MaintainCount<counter>>(nrStepsWaiting);
mc1.reset();
MaintainCount mc2(nrStepsCopyingTo);
MaintainCount<counter> mc2(nrStepsCopyingTo);
printMsg(lvlDebug, format("sending closure of %1% to %2%") % step->drvPath % machine->sshName);
auto now1 = std::chrono::steady_clock::now();
@ -276,7 +276,7 @@ void State::buildRemote(ref<Store> destStore,
result.startTime = time(0);
int res;
{
MaintainCount mc(nrStepsBuilding);
MaintainCount<counter> mc(nrStepsBuilding);
res = readInt(from);
}
result.stopTime = time(0);
@ -371,7 +371,7 @@ void State::buildRemote(ref<Store> destStore,
/* Copy the output paths. */
if (/* machine->sshName != "localhost" */ true) {
MaintainCount mc(nrStepsCopyingFrom);
MaintainCount<counter> mc(nrStepsCopyingFrom);
auto now1 = std::chrono::steady_clock::now();

View file

@ -1,17 +0,0 @@
#pragma once
#include <atomic>
#include <functional>
typedef std::atomic<unsigned long> counter;
struct MaintainCount
{
counter & c;
MaintainCount(counter & c) : c(c) { c++; }
MaintainCount(counter & c, std::function<void(unsigned long)> warn) : c(c)
{
warn(++c);
}
~MaintainCount() { auto prev = c--; assert(prev); }
};

View file

@ -105,13 +105,11 @@ State::State()
}
MaintainCount State::startDbUpdate()
nix::MaintainCount<counter> State::startDbUpdate()
{
return MaintainCount(nrActiveDbUpdates, [](unsigned long c) {
if (c > 6) {
printMsg(lvlError, format("warning: %d concurrent database updates; PostgreSQL may be stalled") % c);
}
});
if (nrActiveDbUpdates > 6)
printError("warning: %d concurrent database updates; PostgreSQL may be stalled", nrActiveDbUpdates.load());
return MaintainCount<counter>(nrActiveDbUpdates);
}
@ -485,7 +483,7 @@ void State::notificationSender()
notificationSenderQueue_->pop();
}
MaintainCount mc(nrNotificationsInProgress);
MaintainCount<counter> mc(nrNotificationsInProgress);
printMsg(lvlChatty, format("sending notification about build %1%") % item.id);

View file

@ -8,7 +8,6 @@
#include <queue>
#include "db.hh"
#include "counter.hh"
#include "token-server.hh"
#include "derivations.hh"
@ -22,6 +21,8 @@ typedef unsigned int BuildID;
typedef std::chrono::time_point<std::chrono::system_clock> system_time;
typedef std::atomic<unsigned long> counter;
typedef enum {
bsSuccess = 0,
@ -439,7 +440,7 @@ public:
private:
MaintainCount startDbUpdate();
nix::MaintainCount<counter> startDbUpdate();
/* Return a store object to store build results. */
nix::ref<nix::Store> getDestStore();