#pragma once #include #include #include #include #include #include #include #include #include namespace reanimated { struct AsyncQueueState { std::atomic_bool running{true}; std::mutex mutex; std::condition_variable cv; std::queue> queue; }; class AsyncQueue { public: explicit AsyncQueue(std::string name); ~AsyncQueue(); void push(std::function &&job); private: const std::shared_ptr state_; }; } // namespace reanimated