#pragma once #include #include #include #include namespace mbgl { namespace util { class RunLoop; class AsyncTask::Impl : public QObject { Q_OBJECT public: Impl(std::function &&); void maySend(); public slots: void runTask(); signals: void send(); private: RunLoop* runLoop; std::function task; std::atomic_flag queued = ATOMIC_FLAG_INIT; }; } // namespace util } // namespace mbgl