Remove easy uses of //aos/mutex
I was hoping to get rid of it completely as one of the nontrivial users
of AOS_LOG, but need to write a compatible condition variable first.
Change-Id: I86c1c4084882bf789baabd0255e115d821154830
diff --git a/y2016/dashboard/dashboard.cc b/y2016/dashboard/dashboard.cc
index 74df0a5..ae4f7ed 100644
--- a/y2016/dashboard/dashboard.cc
+++ b/y2016/dashboard/dashboard.cc
@@ -14,9 +14,9 @@
#include "aos/events/shm_event_loop.h"
#include "aos/init.h"
#include "aos/logging/logging.h"
-#include "aos/mutex/mutex.h"
#include "aos/realtime.h"
#include "aos/seasocks/seasocks_logger.h"
+#include "aos/stl_mutex/stl_mutex.h"
#include "aos/time/time.h"
#include "aos/util/phased_loop.h"
#include "frc971/autonomous/auto_mode_generated.h"
@@ -52,8 +52,7 @@
DataCollector::DataCollector(::aos::EventLoop *event_loop)
: event_loop_(event_loop),
vision_status_fetcher_(
- event_loop->MakeFetcher<::y2016::vision::VisionStatus>(
- "/vision")),
+ event_loop->MakeFetcher<::y2016::vision::VisionStatus>("/vision")),
ball_detector_fetcher_(
event_loop->MakeFetcher<::y2016::sensors::BallDetector>(
"/superstructure")),
@@ -70,7 +69,7 @@
overflow_id_(1) {}
void DataCollector::RunIteration() {
- ::aos::MutexLocker locker(&mutex_);
+ std::unique_lock<aos::stl_mutex> locker(mutex_);
measure_index_ = 0;
// Add recorded data here. /////
@@ -153,7 +152,7 @@
void DataCollector::AddPoint(const ::std::string &name, double value) {
// Mutex should be locked when this method is called to synchronize packets.
- AOS_CHECK(mutex_.OwnedBySelf());
+ AOS_CHECK(mutex_islocked(mutex_.native_handle()));
size_t index = GetIndex(sample_id_);
@@ -175,7 +174,7 @@
}
::std::string DataCollector::Fetch(int32_t from_sample) {
- ::aos::MutexLocker locker(&mutex_);
+ std::unique_lock<aos::stl_mutex> locker(mutex_);
::std::stringstream message;
message.precision(10);
diff --git a/y2016/dashboard/dashboard.h b/y2016/dashboard/dashboard.h
index cc51a8b..b4d5034 100644
--- a/y2016/dashboard/dashboard.h
+++ b/y2016/dashboard/dashboard.h
@@ -1,12 +1,12 @@
#ifndef Y2016_DASHBOARD_DASHBOARD_H_
#define Y2016_DASHBOARD_DASHBOARD_H_
+#include <atomic>
#include <iostream>
#include <memory>
#include <sstream>
#include <string>
#include <thread>
-#include <atomic>
#include <vector>
#include "seasocks/PageHandler.h"
@@ -15,7 +15,7 @@
#include "seasocks/WebSocket.h"
#include "aos/events/event_loop.h"
-#include "aos/mutex/mutex.h"
+#include "aos/stl_mutex/stl_mutex.h"
#include "aos/time/time.h"
#include "frc971/autonomous/auto_mode_generated.h"
#include "y2016/control_loops/superstructure/superstructure_status_generated.h"
@@ -79,23 +79,23 @@
::std::string cur_raw_data_;
int32_t sample_id_; // Last sample id used.
- size_t measure_index_; // Last measure index used.
+ size_t measure_index_; // Last measure index used.
const int32_t overflow_id_; // Vector wrapping size.
::std::atomic<bool> run_{true};
- ::aos::Mutex mutex_;
+ aos::stl_mutex mutex_;
};
class SocketHandler : public seasocks::WebSocket::Handler {
public:
SocketHandler(::aos::EventLoop *event_loop);
- void onConnect(seasocks::WebSocket* connection) override;
- void onData(seasocks::WebSocket* connection, const char* data) override;
- void onDisconnect(seasocks::WebSocket* connection) override;
+ void onConnect(seasocks::WebSocket *connection) override;
+ void onData(seasocks::WebSocket *connection, const char *data) override;
+ void onDisconnect(seasocks::WebSocket *connection) override;
void Quit();
private:
- ::std::set<seasocks::WebSocket*> connections_;
+ ::std::set<seasocks::WebSocket *> connections_;
DataCollector data_collector_;
::std::thread data_collector_thread_;
};
@@ -103,7 +103,7 @@
class SeasocksLogger : public seasocks::PrintfLogger {
public:
SeasocksLogger(Level min_level_to_log);
- void log(Level level, const char* message) override;
+ void log(Level level, const char *message) override;
};
} // namespace dashboard