summaryrefslogtreecommitdiffhomepage
path: root/Private/KernelKit/LockDelegate.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'Private/KernelKit/LockDelegate.hpp')
-rw-r--r--Private/KernelKit/LockDelegate.hpp64
1 files changed, 0 insertions, 64 deletions
diff --git a/Private/KernelKit/LockDelegate.hpp b/Private/KernelKit/LockDelegate.hpp
deleted file mode 100644
index 5b135625..00000000
--- a/Private/KernelKit/LockDelegate.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
-------------------------------------------- */
-
-#pragma once
-
-#include <NewKit/Atom.hpp>
-#include <NewKit/Defines.hpp>
-
-#define kLockDone (200U) /* job is done */
-#define kLockTimedOut (100U) /* job has timed out */
-
-namespace NewOS
-{
- /// @brief Lock condition pointer.
- typedef Boolean* LockPtr;
-
- /// @brief Locking delegate class, hangs until limit.
- /// @tparam N the amount of cycles to wait.
- template <SizeT N>
- class LockDelegate final
- {
- public:
- LockDelegate() = delete;
-
- public:
- explicit LockDelegate(LockPtr expr)
- {
- auto spin = 0U;
-
- while (spin != N)
- {
- if (*expr)
- {
- fLockStatus | kLockDone;
- break;
- }
- }
-
- if (spin == N)
- fLockStatus | kLockTimedOut;
- }
-
- ~LockDelegate() = default;
-
- LockDelegate& operator=(const LockDelegate&) = delete;
- LockDelegate(const LockDelegate&) = delete;
-
- bool Done()
- {
- return fLockStatus[kLockDone] == kLockDone;
- }
-
- bool HasTimedOut()
- {
- return fLockStatus[kLockTimedOut] != kLockTimedOut;
- }
-
- private:
- Atom<UInt> fLockStatus;
- };
-} // namespace NewOS