From 5adb6a36b69c3ad912d399e5f2f0d28d00674a23 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 20 Feb 2026 18:35:34 -0500 Subject: [PATCH] Fix initialization of `ioport` in `Worker` on Windows --- src/libstore/build/worker.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libstore/build/worker.cc b/src/libstore/build/worker.cc index 1069b68a1934..ffb1027b42c5 100644 --- a/src/libstore/build/worker.cc +++ b/src/libstore/build/worker.cc @@ -20,6 +20,9 @@ Worker::Worker(Store & store, Store & evalStore) : act(*logger, actRealise) , actDerivations(*logger, actBuilds) , actSubstitutions(*logger, actCopyPaths) +#ifdef _WIN32 + , ioport{CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0)} +#endif , store(store) , evalStore(evalStore) , settings(nix::settings.getWorkerSettings()) @@ -27,6 +30,10 @@ Worker::Worker(Store & store, Store & evalStore) return nix::settings.getWorkerSettings().useSubstitutes ? getDefaultSubstituters() : std::list>{}; }} { +#ifdef _WIN32 + if (!ioport) + throw windows::WinError("CreateIoCompletionPort"); +#endif nrLocalBuilds = 0; nrSubstitutions = 0; lastWokenUp = steady_time_point::min();