Use std::unique_ptr for HookInstance

This commit is contained in:
Eelco Dolstra 2017-01-19 15:15:09 +01:00
parent 90ee1e3fe3
commit 2579e32c2b
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE

View file

@ -257,7 +257,7 @@ public:
LocalStore & store; LocalStore & store;
std::shared_ptr<HookInstance> hook; std::unique_ptr<HookInstance> hook;
Worker(LocalStore & store); Worker(LocalStore & store);
~Worker(); ~Worker();
@ -751,7 +751,7 @@ private:
Pipe userNamespaceSync; Pipe userNamespaceSync;
/* The build hook. */ /* The build hook. */
std::shared_ptr<HookInstance> hook; std::unique_ptr<HookInstance> hook;
/* Whether we're currently doing a chroot build. */ /* Whether we're currently doing a chroot build. */
bool useChroot = false; bool useChroot = false;
@ -1566,7 +1566,7 @@ HookReply DerivationGoal::tryBuildHook()
if (!settings.useBuildHook || getEnv("NIX_BUILD_HOOK") == "" || !useDerivation) return rpDecline; if (!settings.useBuildHook || getEnv("NIX_BUILD_HOOK") == "" || !useDerivation) return rpDecline;
if (!worker.hook) if (!worker.hook)
worker.hook = std::make_shared<HookInstance>(); worker.hook = std::make_unique<HookInstance>();
/* Tell the hook about system features (beyond the system type) /* Tell the hook about system features (beyond the system type)
required from the build machine. (The hook could parse the required from the build machine. (The hook could parse the
@ -1601,8 +1601,7 @@ HookReply DerivationGoal::tryBuildHook()
printMsg(lvlTalkative, format("using hook to build path(s) %1%") % showPaths(missingPaths)); printMsg(lvlTalkative, format("using hook to build path(s) %1%") % showPaths(missingPaths));
hook = worker.hook; hook = std::move(worker.hook);
worker.hook.reset();
/* Tell the hook all the inputs that have to be copied to the /* Tell the hook all the inputs that have to be copied to the
remote system. This unfortunately has to contain the entire remote system. This unfortunately has to contain the entire