summaryrefslogtreecommitdiff
path: root/src/buildtool/multithreading/notification_queue.hpp
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@gmail.com>2023-04-15 16:28:33 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2023-04-26 18:29:44 +0200
commitd762bfa1953933dfac0a29a74523c25719396b8c (patch)
tree1002b0aecc1af698f0349a4efb4bfc169886c60a /src/buildtool/multithreading/notification_queue.hpp
parent03e1019aca5d08e53bfeb455071d91561fc33039 (diff)
downloadjustbuild-d762bfa1953933dfac0a29a74523c25719396b8c.tar.gz
imports: Switch to Microsoft GSL implementation
... with two minor code base changes compared to previous use of gsl-lite: - dag.hpp: ActionNode::Ptr and ArtifactNode::Ptr are not wrapped in gsl::not_null<> anymore, due to lack of support for wrapping std::unique_ptr<>. More specifically, the move constructor is missing, rendering it impossible to use std::vector<>::emplace_back(). - utils/cpp/gsl.hpp: New header file added to implement the macros ExpectsAudit() and EnsureAudit(), asserts running only in debug builds, which were available in gsl-lite but are missing in MS GSL.
Diffstat (limited to 'src/buildtool/multithreading/notification_queue.hpp')
-rw-r--r--src/buildtool/multithreading/notification_queue.hpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/buildtool/multithreading/notification_queue.hpp b/src/buildtool/multithreading/notification_queue.hpp
index 1df5d659..9d2f06eb 100644
--- a/src/buildtool/multithreading/notification_queue.hpp
+++ b/src/buildtool/multithreading/notification_queue.hpp
@@ -22,7 +22,7 @@
#include <shared_mutex>
#include <utility> // std::forward
-#include "gsl-lite/gsl-lite.hpp"
+#include "gsl/gsl"
#include "src/buildtool/multithreading/task.hpp"
#include "src/utils/cpp/atomic.hpp"
@@ -67,14 +67,14 @@ class WaitableZeroCounter {
class NotificationQueue {
public:
explicit NotificationQueue(
- gsl::not_null<WaitableZeroCounter*> total_workload)
- : total_workload_{std::move(total_workload)} {}
+ gsl::not_null<WaitableZeroCounter*> const& total_workload)
+ : total_workload_{total_workload} {}
NotificationQueue(NotificationQueue const& other) = delete;
NotificationQueue(NotificationQueue&& other) noexcept
: queue_{std::move(other.queue_)},
done_{other.done_},
- total_workload_{std::move(other.total_workload_)} {}
+ total_workload_{other.total_workload_} {}
~NotificationQueue() = default;
[[nodiscard]] auto operator=(NotificationQueue const& other)