diff --git a/hal/include/HAL/cpp/Semaphore.h b/hal/include/HAL/cpp/Semaphore.h deleted file mode 100644 index 53e17d7194..0000000000 --- a/hal/include/HAL/cpp/Semaphore.h +++ /dev/null @@ -1,41 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) FIRST 2016-2017. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -#pragma once - -#include - -#include - -#include "HAL/cpp/priority_mutex.h" -#include "support/deprecated.h" - -class WPI_DEPRECATED( - "Semaphore scheduled for removal in 2018. Recommended to replace with a " - "std::mutex and std::condition_variable") Semaphore { - public: - explicit Semaphore(int32_t count = 0); - Semaphore(Semaphore&&); - Semaphore& operator=(Semaphore&&); - - void give(); - void take(); - - // @return true if semaphore was locked successfully. false if not. - bool tryTake(); - - static const int32_t kNoWait = 0; - static const int32_t kWaitForever = -1; - - static const int32_t kEmpty = 0; - static const int32_t kFull = 1; - - private: - priority_mutex m_mutex; - std::condition_variable_any m_condition; - int32_t m_count = 0; -}; diff --git a/hal/lib/athena/cpp/Semaphore.cpp b/hal/lib/athena/cpp/Semaphore.cpp deleted file mode 100644 index 521c816b7c..0000000000 --- a/hal/lib/athena/cpp/Semaphore.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/* Copyright (c) FIRST 2015-2017. All Rights Reserved. */ -/* Open Source Software - may be modified and shared by FRC teams. The code */ -/* must be accompanied by the FIRST BSD license file in the root directory of */ -/* the project. */ -/*----------------------------------------------------------------------------*/ - -#include "HAL/cpp/Semaphore.h" - -Semaphore::Semaphore(int32_t count) { m_count = count; } - -void Semaphore::give() { - std::lock_guard lock(m_mutex); - ++m_count; - m_condition.notify_one(); -} - -void Semaphore::take() { - std::unique_lock lock(m_mutex); - m_condition.wait(lock, [this] { return m_count; }); - --m_count; -} - -bool Semaphore::tryTake() { - std::lock_guard lock(m_mutex); - if (m_count) { - --m_count; - return true; - } else { - return false; - } -}