aboutsummaryrefslogtreecommitdiff
path: root/src/libutil
diff options
context:
space:
mode:
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/lazy.hh48
-rw-r--r--src/libutil/logging.hh2
-rw-r--r--src/libutil/types.hh1
-rw-r--r--src/libutil/util.cc6
4 files changed, 5 insertions, 52 deletions
diff --git a/src/libutil/lazy.hh b/src/libutil/lazy.hh
deleted file mode 100644
index d073e486c..000000000
--- a/src/libutil/lazy.hh
+++ /dev/null
@@ -1,48 +0,0 @@
-#include <exception>
-#include <functional>
-#include <mutex>
-
-namespace nix {
-
-/* A helper class for lazily-initialized variables.
-
- Lazy<T> var([]() { return value; });
-
- declares a variable of type T that is initialized to 'value' (in a
- thread-safe way) on first use, that is, when var() is first
- called. If the initialiser code throws an exception, then all
- subsequent calls to var() will rethrow that exception. */
-template<typename T>
-class Lazy
-{
-
- typedef std::function<T()> Init;
-
- Init init;
-
- std::once_flag done;
-
- T value;
-
- std::exception_ptr ex;
-
-public:
-
- Lazy(Init init) : init(init)
- { }
-
- const T & operator () ()
- {
- std::call_once(done, [&]() {
- try {
- value = init();
- } catch (...) {
- ex = std::current_exception();
- }
- });
- if (ex) std::rethrow_exception(ex);
- return value;
- }
-};
-
-}
diff --git a/src/libutil/logging.hh b/src/libutil/logging.hh
index 09619aac6..b75b87f80 100644
--- a/src/libutil/logging.hh
+++ b/src/libutil/logging.hh
@@ -98,7 +98,7 @@ public:
virtual void writeToStdout(std::string_view s);
template<typename... Args>
- inline void stdout(const std::string & fs, const Args & ... args)
+ inline void stdout_(const std::string & fs, const Args & ... args)
{
boost::format f(fs);
formatHelper(f, args...);
diff --git a/src/libutil/types.hh b/src/libutil/types.hh
index 3af485fa0..2170e4c93 100644
--- a/src/libutil/types.hh
+++ b/src/libutil/types.hh
@@ -4,6 +4,7 @@
#include <list>
#include <set>
+#include <string>
#include <map>
#include <vector>
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 97d278581..5500d0f9a 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -1,4 +1,3 @@
-#include "lazy.hh"
#include "util.hh"
#include "affinity.hh"
#include "sync.hh"
@@ -511,7 +510,8 @@ std::string getUserName()
}
-static Lazy<Path> getHome2([]() {
+static Path getHome2()
+{
auto homeDir = getEnv("HOME");
if (!homeDir) {
std::vector<char> buf(16384);
@@ -523,7 +523,7 @@ static Lazy<Path> getHome2([]() {
homeDir = pw->pw_dir;
}
return *homeDir;
-});
+};
Path getHome() { return getHome2(); }