summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/Sources/Semaphore.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dev/Kernel/Sources/Semaphore.cxx')
-rw-r--r--dev/Kernel/Sources/Semaphore.cxx62
1 files changed, 0 insertions, 62 deletions
diff --git a/dev/Kernel/Sources/Semaphore.cxx b/dev/Kernel/Sources/Semaphore.cxx
deleted file mode 100644
index c159240e..00000000
--- a/dev/Kernel/Sources/Semaphore.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -------------------------------------------
-
- Copyright ZKA Technologies.
-
-------------------------------------------- */
-
-#include <KernelKit/ProcessScheduler.hxx>
-#include <KernelKit/Semaphore.hxx>
-
-namespace Kernel
-{
- bool Semaphore::Unlock() noexcept
- {
- if (fLockingProcess)
- fLockingProcess = nullptr;
-
- return fLockingProcess == nullptr;
- }
-
- bool Semaphore::Lock(PROCESS_HEADER_BLOCK* process)
- {
- if (!process || fLockingProcess)
- return false;
-
- fLockingProcess = process;
-
- return true;
- }
-
- bool Semaphore::IsLocked() const
- {
- return fLockingProcess;
- }
-
- bool Semaphore::LockOrWait(PROCESS_HEADER_BLOCK* process, HardwareTimerInterface* timer)
- {
- if (process == nullptr)
- return false;
-
- if (timer == nullptr)
- return false;
-
- this->Lock(process);
-
- timer->Wait();
-
- return this->Lock(process);
- }
-
- /// @brief Wait with process, either wait for process being invalid, or not being run.
- Void Semaphore::WaitForProcess() noexcept
- {
- while (fLockingProcess)
- {
- if (fLockingProcess->GetStatus() != ProcessStatus::kRunning)
- {
- this->Unlock();
- break;
- }
- }
- }
-} // namespace Kernel