Replaced instances of std::unique_lock with std::lock_guard where possible

If a lock is used with a mutex that doesn't need to be unlocked again before the lock is destroyed, std::lock_guard can be more efficient than std::unique_lock due to less overhead.

This commit also removes a redundant set of curly braces in PIDController.cpp intended to constrain a lock's scope.

Change-Id: Idd692ce439528ddb319a4c62c40c7351a664eb97
This commit is contained in:
Tyler Veness
2015-09-01 16:47:57 -07:00
committed by Brad Miller (WPI)
parent f64b055499
commit c0ecde302f
20 changed files with 225 additions and 227 deletions

View File

@@ -121,7 +121,7 @@ void PIDController::Calculate()
PIDSource *pidInput;
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
if (m_pidInput == 0) return;
if (m_pidOutput == 0) return;
enabled = m_enabled;
@@ -135,7 +135,7 @@ void PIDController::Calculate()
PIDOutput *pidOutput;
{
std::unique_lock<priority_mutex> sync(m_mutex);
std::lock_guard<priority_mutex> sync(m_mutex);
m_error = m_setpoint - input;
if (m_continuous)
{
@@ -211,7 +211,7 @@ void PIDController::Calculate()
void PIDController::SetPID(double p, double i, double d)
{
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_P = p;
m_I = i;
m_D = d;
@@ -235,7 +235,7 @@ void PIDController::SetPID(double p, double i, double d)
void PIDController::SetPID(double p, double i, double d, double f)
{
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_P = p;
m_I = i;
m_D = d;
@@ -256,7 +256,7 @@ void PIDController::SetPID(double p, double i, double d, double f)
*/
double PIDController::GetP() const
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
return m_P;
}
@@ -266,7 +266,7 @@ double PIDController::GetP() const
*/
double PIDController::GetI() const
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
return m_I;
}
@@ -276,7 +276,7 @@ double PIDController::GetI() const
*/
double PIDController::GetD() const
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
return m_D;
}
@@ -286,7 +286,7 @@ double PIDController::GetD() const
*/
double PIDController::GetF() const
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
return m_F;
}
@@ -297,7 +297,7 @@ double PIDController::GetF() const
*/
float PIDController::Get() const
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
return m_result;
}
@@ -310,7 +310,7 @@ float PIDController::Get() const
*/
void PIDController::SetContinuous(bool continuous)
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_continuous = continuous;
}
@@ -323,7 +323,7 @@ void PIDController::SetContinuous(bool continuous)
void PIDController::SetInputRange(float minimumInput, float maximumInput)
{
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_minimumInput = minimumInput;
m_maximumInput = maximumInput;
}
@@ -339,7 +339,7 @@ void PIDController::SetInputRange(float minimumInput, float maximumInput)
*/
void PIDController::SetOutputRange(float minimumOutput, float maximumOutput)
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_minimumOutput = minimumOutput;
m_maximumOutput = maximumOutput;
}
@@ -351,7 +351,7 @@ void PIDController::SetOutputRange(float minimumOutput, float maximumOutput)
void PIDController::SetSetpoint(float setpoint)
{
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
if (m_maximumInput > m_minimumInput)
{
if (setpoint > m_maximumInput)
@@ -378,7 +378,7 @@ void PIDController::SetSetpoint(float setpoint)
*/
double PIDController::GetSetpoint() const
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
return m_setpoint;
}
@@ -390,7 +390,7 @@ float PIDController::GetError() const
{
double pidInput;
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
pidInput = m_pidInput->PIDGet();
}
return GetSetpoint() - pidInput;
@@ -420,7 +420,7 @@ PIDSourceType PIDController::GetPIDSourceType() const {
float PIDController::GetAvgError() const {
float avgError = 0;
{
std::unique_lock<priority_mutex> sync(m_mutex);
std::lock_guard<priority_mutex> sync(m_mutex);
// Don't divide by zero.
if (m_buf.size()) avgError = m_bufTotal / m_buf.size();
}
@@ -434,7 +434,7 @@ float PIDController::GetAvgError() const {
*/
void PIDController::SetTolerance(float percent)
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_toleranceType = kPercentTolerance;
m_tolerance = percent;
}
@@ -446,7 +446,7 @@ void PIDController::SetTolerance(float percent)
*/
void PIDController::SetPercentTolerance(float percent)
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_toleranceType = kPercentTolerance;
m_tolerance = percent;
}
@@ -458,7 +458,7 @@ void PIDController::SetPercentTolerance(float percent)
*/
void PIDController::SetAbsoluteTolerance(float absTolerance)
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_toleranceType = kAbsoluteTolerance;
m_tolerance = absTolerance;
}
@@ -493,7 +493,7 @@ bool PIDController::OnTarget() const
{
double error = GetError();
std::unique_lock<priority_mutex> sync(m_mutex);
std::lock_guard<priority_mutex> sync(m_mutex);
switch (m_toleranceType) {
case kPercentTolerance:
return fabs(error) < m_tolerance / 100 * (m_maximumInput - m_minimumInput);
@@ -513,7 +513,7 @@ bool PIDController::OnTarget() const
void PIDController::Enable()
{
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_enabled = true;
}
@@ -528,7 +528,7 @@ void PIDController::Enable()
void PIDController::Disable()
{
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_pidOutput->PIDWrite(0);
m_enabled = false;
}
@@ -543,7 +543,7 @@ void PIDController::Disable()
*/
bool PIDController::IsEnabled() const
{
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
return m_enabled;
}
@@ -554,7 +554,7 @@ void PIDController::Reset()
{
Disable();
std::unique_lock<priority_mutex> lock(m_mutex);
std::lock_guard<priority_mutex> lock(m_mutex);
m_prevInput = 0;
m_totalError = 0;
m_result = 0;