mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-02 02:51:42 +00:00
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:
committed by
Brad Miller (WPI)
parent
f64b055499
commit
c0ecde302f
@@ -35,14 +35,14 @@ void CameraServer::FreeImageData(
|
||||
if (std::get<3>(imageData))
|
||||
imaqDispose(std::get<0>(imageData));
|
||||
else if (std::get<0>(imageData) != nullptr) {
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
m_dataPool.push_back(std::get<0>(imageData));
|
||||
}
|
||||
}
|
||||
|
||||
void CameraServer::SetImageData(uint8_t* data, unsigned int size,
|
||||
unsigned int start, bool imaqData) {
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
FreeImageData(m_imageData);
|
||||
m_imageData = std::make_tuple(data, size, start, imaqData);
|
||||
m_newImageVariable.notify_all();
|
||||
@@ -58,7 +58,7 @@ void CameraServer::SetImage(Image const* image) {
|
||||
bool hwClient;
|
||||
{
|
||||
// Make a local copy of the hwClient variable so that we can safely use it.
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
hwClient = m_hwClient;
|
||||
}
|
||||
unsigned int start = 0;
|
||||
@@ -83,7 +83,7 @@ void CameraServer::AutoCapture() {
|
||||
bool hwClient;
|
||||
uint8_t* data = nullptr;
|
||||
{
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
hwClient = m_hwClient;
|
||||
if (hwClient) {
|
||||
data = m_dataPool.back();
|
||||
@@ -109,7 +109,7 @@ void CameraServer::StartAutomaticCapture(char const* cameraName) {
|
||||
}
|
||||
|
||||
void CameraServer::StartAutomaticCapture(std::shared_ptr<USBCamera> camera) {
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
if (m_autoCaptureStarted) return;
|
||||
|
||||
m_camera = camera;
|
||||
@@ -121,12 +121,12 @@ void CameraServer::StartAutomaticCapture(std::shared_ptr<USBCamera> camera) {
|
||||
}
|
||||
|
||||
bool CameraServer::IsAutoCaptureStarted() {
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
return m_autoCaptureStarted;
|
||||
}
|
||||
|
||||
void CameraServer::SetSize(unsigned int size) {
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
if (!m_camera) return;
|
||||
if (size == kSize160x120)
|
||||
m_camera->SetSize(160, 120);
|
||||
@@ -137,12 +137,12 @@ void CameraServer::SetSize(unsigned int size) {
|
||||
}
|
||||
|
||||
void CameraServer::SetQuality(unsigned int quality) {
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
m_quality = quality > 100 ? 100 : quality;
|
||||
}
|
||||
|
||||
unsigned int CameraServer::GetQuality() {
|
||||
std::unique_lock<priority_recursive_mutex> lock(m_imageMutex);
|
||||
std::lock_guard<priority_recursive_mutex> lock(m_imageMutex);
|
||||
return m_quality;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user