Driver Station Performance Improvements #97
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The old driver station code had some performance issues. It would cache the data under lock, which would take about 5ms. In addition, only 1 thread could read from the cache at one time, which could be a problem. So the code was changed to use a ReaderWriterLockSlim, as writes are called much less then reads. The second commit changes the code to use a cache to pull the data from the HAL, and then grabs the lock and does a reference change, which can happen much quicker.