1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 00:11:17 +02:00

Remove Lazy

This fixes a crash during startup when compiling Nix as a single
compilation unit.
This commit is contained in:
Eelco Dolstra 2020-10-09 17:54:59 +02:00
parent 87157b2bd3
commit e845d19ae3
2 changed files with 18 additions and 64 deletions

View file

@ -1,4 +1,3 @@
#include "lazy.hh"
#include "util.hh"
#include "affinity.hh"
#include "sync.hh"
@ -522,21 +521,24 @@ std::string getUserName()
}
static Lazy<Path> getHome2([]() {
auto homeDir = getEnv("HOME");
if (!homeDir) {
std::vector<char> buf(16384);
struct passwd pwbuf;
struct passwd * pw;
if (getpwuid_r(geteuid(), &pwbuf, buf.data(), buf.size(), &pw) != 0
|| !pw || !pw->pw_dir || !pw->pw_dir[0])
throw Error("cannot determine user's home directory");
homeDir = pw->pw_dir;
}
return *homeDir;
});
Path getHome() { return getHome2(); }
Path getHome()
{
static Path homeDir = []()
{
auto homeDir = getEnv("HOME");
if (!homeDir) {
std::vector<char> buf(16384);
struct passwd pwbuf;
struct passwd * pw;
if (getpwuid_r(geteuid(), &pwbuf, buf.data(), buf.size(), &pw) != 0
|| !pw || !pw->pw_dir || !pw->pw_dir[0])
throw Error("cannot determine user's home directory");
homeDir = pw->pw_dir;
}
return *homeDir;
}();
return homeDir;
}
Path getCacheDir()