Mark handlers in AOS as noexcept
AOS isn't exception safe. Ajay just spent a lot of time debugging
exception safety. Let's mark the callbacks in AOS as not exception safe
to catch this at the source.
Change-Id: Icdd7de207837f9379440c32a07cc40e119321353
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
diff --git a/aos/events/event_loop_event.h b/aos/events/event_loop_event.h
index 808a4fe..a86f670 100644
--- a/aos/events/event_loop_event.h
+++ b/aos/events/event_loop_event.h
@@ -32,7 +32,7 @@
}
void set_generation(size_t generation) { generation_ = generation; }
- virtual void HandleEvent() = 0;
+ virtual void HandleEvent() noexcept = 0;
private:
monotonic_clock::time_point event_time_ = monotonic_clock::max_time;
@@ -45,7 +45,7 @@
public:
EventHandler(T *t) : t_(t) {}
~EventHandler() override = default;
- void HandleEvent() override { t_->HandleEvent(); }
+ void HandleEvent() noexcept override { t_->HandleEvent(); }
private:
T *const t_;
diff --git a/aos/events/simulated_event_loop.cc b/aos/events/simulated_event_loop.cc
index 083e246..736bd6e 100644
--- a/aos/events/simulated_event_loop.cc
+++ b/aos/events/simulated_event_loop.cc
@@ -127,7 +127,7 @@
void Schedule(std::shared_ptr<SimulatedMessage> message);
- void HandleEvent();
+ void HandleEvent() noexcept;
void SetSimulatedChannel(SimulatedChannel *channel) {
simulated_channel_ = channel;
@@ -473,7 +473,7 @@
void Setup(monotonic_clock::time_point base,
monotonic_clock::duration repeat_offset) override;
- void HandleEvent();
+ void HandleEvent() noexcept;
void Disable() override;
@@ -496,7 +496,7 @@
const monotonic_clock::duration offset);
~SimulatedPhasedLoopHandler();
- void HandleEvent();
+ void HandleEvent() noexcept;
void Schedule(monotonic_clock::time_point sleep_time) override;
@@ -840,7 +840,7 @@
msgs_.emplace_back(message);
}
-void SimulatedWatcher::HandleEvent() {
+void SimulatedWatcher::HandleEvent() noexcept {
const monotonic_clock::time_point monotonic_now =
simulated_event_loop_->monotonic_now();
VLOG(1) << simulated_event_loop_->distributed_now() << " "
@@ -1094,7 +1094,7 @@
simulated_event_loop_->AddEvent(&event_);
}
-void SimulatedTimerHandler::HandleEvent() {
+void SimulatedTimerHandler::HandleEvent() noexcept {
const monotonic_clock::time_point monotonic_now =
simulated_event_loop_->monotonic_now();
VLOG(1) << simulated_event_loop_->distributed_now() << " "
@@ -1152,7 +1152,7 @@
simulated_event_loop_->RemoveEvent(&event_);
}
-void SimulatedPhasedLoopHandler::HandleEvent() {
+void SimulatedPhasedLoopHandler::HandleEvent() noexcept {
monotonic_clock::time_point monotonic_now =
simulated_event_loop_->monotonic_now();
VLOG(1) << monotonic_now << " Phased loop " << simulated_event_loop_->name()