Loading adb/fdevent/fdevent.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,11 @@ void fdevent_context::Run(std::function<void()> fn) { Interrupt(); } void fdevent_context::TerminateLoop() { terminate_loop_ = true; Interrupt(); } void fdevent_context::FlushRunQueue() { // We need to be careful around reentrancy here, since a function we call can queue up another // function. Loading adb/fdevent/fdevent.h +5 −3 Original line number Diff line number Diff line Loading @@ -71,8 +71,9 @@ struct fdevent_context { // trigger repeatedly every |timeout| ms. virtual void SetTimeout(fdevent* fde, std::optional<std::chrono::milliseconds> timeout) = 0; // Loop forever, handling events. // Implementations should call FlushRunQueue on every iteration. // Loop until TerminateLoop is called, handling events. // Implementations should call FlushRunQueue on every iteration, and check the value of // terminate_loop_ to determine whether to stop. virtual void Loop() = 0; // Assert that the caller is either running on the context's main thread, or that there is no Loading @@ -83,7 +84,7 @@ struct fdevent_context { void Run(std::function<void()> fn); // Test-only functionality: virtual void TerminateLoop() = 0; void TerminateLoop(); virtual size_t InstalledCount() = 0; protected: Loading @@ -94,6 +95,7 @@ struct fdevent_context { void FlushRunQueue() EXCLUDES(run_queue_mutex_); std::optional<uint64_t> main_thread_id_ = std::nullopt; std::atomic<bool> terminate_loop_ = false; private: std::mutex run_queue_mutex_; Loading adb/fdevent/fdevent_poll.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -392,11 +392,6 @@ void fdevent_context_poll::Loop() { main_thread_id_.reset(); } void fdevent_context_poll::TerminateLoop() { terminate_loop_ = true; Interrupt(); } size_t fdevent_context_poll::InstalledCount() { // We always have an installed fde for interrupt. return poll_node_map_.size() - 1; Loading adb/fdevent/fdevent_poll.h +0 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,6 @@ struct fdevent_context_poll : public fdevent_context { virtual void Loop() final; virtual void TerminateLoop() final; virtual size_t InstalledCount() final; protected: Loading @@ -73,5 +72,4 @@ struct fdevent_context_poll : public fdevent_context { unique_fd interrupt_fd_; fdevent* interrupt_fde_ = nullptr; std::atomic<bool> terminate_loop_ = false; }; Loading
adb/fdevent/fdevent.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,11 @@ void fdevent_context::Run(std::function<void()> fn) { Interrupt(); } void fdevent_context::TerminateLoop() { terminate_loop_ = true; Interrupt(); } void fdevent_context::FlushRunQueue() { // We need to be careful around reentrancy here, since a function we call can queue up another // function. Loading
adb/fdevent/fdevent.h +5 −3 Original line number Diff line number Diff line Loading @@ -71,8 +71,9 @@ struct fdevent_context { // trigger repeatedly every |timeout| ms. virtual void SetTimeout(fdevent* fde, std::optional<std::chrono::milliseconds> timeout) = 0; // Loop forever, handling events. // Implementations should call FlushRunQueue on every iteration. // Loop until TerminateLoop is called, handling events. // Implementations should call FlushRunQueue on every iteration, and check the value of // terminate_loop_ to determine whether to stop. virtual void Loop() = 0; // Assert that the caller is either running on the context's main thread, or that there is no Loading @@ -83,7 +84,7 @@ struct fdevent_context { void Run(std::function<void()> fn); // Test-only functionality: virtual void TerminateLoop() = 0; void TerminateLoop(); virtual size_t InstalledCount() = 0; protected: Loading @@ -94,6 +95,7 @@ struct fdevent_context { void FlushRunQueue() EXCLUDES(run_queue_mutex_); std::optional<uint64_t> main_thread_id_ = std::nullopt; std::atomic<bool> terminate_loop_ = false; private: std::mutex run_queue_mutex_; Loading
adb/fdevent/fdevent_poll.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -392,11 +392,6 @@ void fdevent_context_poll::Loop() { main_thread_id_.reset(); } void fdevent_context_poll::TerminateLoop() { terminate_loop_ = true; Interrupt(); } size_t fdevent_context_poll::InstalledCount() { // We always have an installed fde for interrupt. return poll_node_map_.size() - 1; Loading
adb/fdevent/fdevent_poll.h +0 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,6 @@ struct fdevent_context_poll : public fdevent_context { virtual void Loop() final; virtual void TerminateLoop() final; virtual size_t InstalledCount() final; protected: Loading @@ -73,5 +72,4 @@ struct fdevent_context_poll : public fdevent_context { unique_fd interrupt_fd_; fdevent* interrupt_fde_ = nullptr; std::atomic<bool> terminate_loop_ = false; };