summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/KernelKit/LockDelegate.hxx
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-18 21:39:29 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-18 21:39:29 +0200
commitda70596895d8135e08f8caac6978117697b4c021 (patch)
tree2516785b5434df8453687f05dc8dd877438901ab /dev/Kernel/KernelKit/LockDelegate.hxx
parent005de79004c9d30e64bdee6e14e06f9d47d1f2ab (diff)
[REFACTOR]
Improved project structure. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/KernelKit/LockDelegate.hxx')
-rw-r--r--dev/Kernel/KernelKit/LockDelegate.hxx67
1 files changed, 0 insertions, 67 deletions
diff --git a/dev/Kernel/KernelKit/LockDelegate.hxx b/dev/Kernel/KernelKit/LockDelegate.hxx
deleted file mode 100644
index d678e3d4..00000000
--- a/dev/Kernel/KernelKit/LockDelegate.hxx
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -------------------------------------------
-
- Copyright ZKA Technologies.
-
-------------------------------------------- */
-
-#pragma once
-
-#include <NewKit/Atom.hxx>
-#include <NewKit/Defines.hxx>
-
-namespace Kernel
-{
- enum
- {
- kLockDone = 200,
- kLockTimedOut,
- };
-
- /// @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 Kernel