about summary refs log tree commit diff
path: root/third_party/nix/src/libutil/lazy.hh
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-05-18T15·39+0200
committerclbot <clbot@tvl.fyi>2022-05-19T14·08+0000
commitd127f9bd0e7b9b2e0df2de8a2227f77c0907468d (patch)
tree68455040d88b8e0c2817601db88ede450873ff8e /third_party/nix/src/libutil/lazy.hh
parentc85291c602ac666421627d6934ebc6d5be1b93e1 (diff)
chore(3p/nix): unvendor tvix 0.1 r/4098
Nothing is using this now, and we'll likely never pick this up again,
but we learned a lot in the process.

Every now and then this breaks in some bizarre way on channel bumps
and it's just a waste of time to maintain that.

Change-Id: Idcf2f5acd4ca7070ce18d7149cbfc0d967dc0a44
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5632
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Autosubmit: tazjin <tazjin@tvl.su>
Diffstat (limited to 'third_party/nix/src/libutil/lazy.hh')
-rw-r--r--third_party/nix/src/libutil/lazy.hh45
1 files changed, 0 insertions, 45 deletions
diff --git a/third_party/nix/src/libutil/lazy.hh b/third_party/nix/src/libutil/lazy.hh
deleted file mode 100644
index 5c6ff5d8df..0000000000
--- a/third_party/nix/src/libutil/lazy.hh
+++ /dev/null
@@ -1,45 +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:
-  explicit 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;
-  }
-};
-
-}  // namespace nix