Переглянути джерело

Kernel: Make SpinlockProtected constructor forward all arguments

This allows you to instantiate SpinlockProtected<T> where T requires
constructor arguments.
Andreas Kling 3 роки тому
батько
коміт
71792e4b3f
1 змінених файлів з 5 додано та 1 видалено
  1. 5 1
      Kernel/Locking/SpinlockProtected.h

+ 5 - 1
Kernel/Locking/SpinlockProtected.h

@@ -46,7 +46,11 @@ private:
     auto lock_mutable() { return Locked<T>(m_value, m_spinlock); }
     auto lock_mutable() { return Locked<T>(m_value, m_spinlock); }
 
 
 public:
 public:
-    SpinlockProtected() = default;
+    template<typename... Args>
+    SpinlockProtected(Args&&... args)
+        : m_value(forward<Args>(args)...)
+    {
+    }
 
 
     template<typename Callback>
     template<typename Callback>
     decltype(auto) with(Callback callback) const
     decltype(auto) with(Callback callback) const