Fixes control data packet delay (#875)

Because of an expected change in 2018 that didn't happen, we had a race
condition causing a 1 packet delay on all DS values. This fixes that.
This commit is contained in:
Thad House
2018-01-18 21:54:33 -08:00
committed by Peter Johnson
parent e4e1eab413
commit 07f70cf784
3 changed files with 76 additions and 2 deletions

View File

@@ -15,6 +15,7 @@
#include <HAL/DriverStation.h>
#include <llvm/Twine.h>
#include <support/condition_variable.h>
#include <support/deprecated.h>
#include <support/mutex.h>
@@ -155,6 +156,10 @@ class DriverStation : public ErrorBase, public RobotStateInterface {
std::thread m_dsThread;
std::atomic<bool> m_isRunning{false};
wpi::mutex m_waitForDataMutex;
wpi::condition_variable m_waitForDataCond;
int m_waitForDataCounter;
mutable wpi::mutex m_cacheDataMutex;
// Robot state status variables