// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UTIL_RUN_LOOP_H_
#define UTIL_RUN_LOOP_H_

#include "base/macros.h"

#include <condition_variable>
#include <functional>
#include <mutex>
#include <queue>

class MsgLoop {
 public:
  MsgLoop();
  ~MsgLoop();

  // Blocks until PostQuit() is called, processing work items posted via
  void Run();

  // Schedules Run() to exit, but will not happen until other outstanding tasks
  // complete. Can be called from any thread.
  void PostQuit();

  // Posts a work item to this queue. All items will be run on the thread from
  // which Run() was called. Can be called from any thread.
  void PostTask(std::function<void()> task);

  // Run()s until the queue is empty. Should only be used (carefully) in tests.
  void RunUntilIdleForTesting();

  // Gets the MsgLoop for the thread from which it's called, or nullptr if
  // there's no MsgLoop for the current thread.
  static MsgLoop* Current();

 private:
  std::mutex queue_mutex_;
  std::queue<std::function<void()>> task_queue_;
  std::condition_variable notifier_;
  bool should_quit_ = false;

  DISALLOW_COPY_AND_ASSIGN(MsgLoop);
};

#endif  // UTIL_RUN_LOOP_H_
