Adds new Threads API for priority setting while using std::thread (#379)

Also adds Java API for doing the same to Java threads (standard Java Thread.setPriority only works
when Java is run as root, even if the process has the right privileges).
This commit is contained in:
Thad House
2016-12-01 21:06:19 -08:00
committed by Peter Johnson
parent 051df14046
commit 351ff5eb48
12 changed files with 394 additions and 2 deletions

View File

@@ -20,8 +20,8 @@ namespace frc {
* Wrapper class around std::thread that allows changing thread priority
*/
class WPI_DEPRECATED(
"Task API scheduled for removal in 2018. Replace with std::thread") Task
: public ErrorBase {
"Task API scheduled for removal in 2018. Replace with std::thread, and use "
"Threads API for setting priority") Task : public ErrorBase {
public:
static const int kDefaultPriority = 60;

View File

@@ -0,0 +1,18 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2016. 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 <thread>
namespace frc {
int GetThreadPriority(std::thread& thread, bool* isRealTime);
int GetCurrentThreadPriority(bool* isRealTime);
bool SetThreadPriority(std::thread& thread, bool realTime, int priority);
bool SetCurrentThreadPriority(bool realTime, int priority);
} // namespace frc

View File

@@ -76,6 +76,7 @@
#include "SpeedController.h"
#include "Talon.h"
#include "TalonSRX.h"
#include "Threads.h"
#include "Timer.h"
#include "Ultrasonic.h"
#include "Utility.h"