1// Copyright 2015 The Chromium OS Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef LIBBRILLO_BRILLO_MESSAGE_LOOPS_MESSAGE_LOOP_UTILS_H_ 6#define LIBBRILLO_BRILLO_MESSAGE_LOOPS_MESSAGE_LOOP_UTILS_H_ 7 8#include <base/callback.h> 9#include <base/time/time.h> 10 11#include <brillo/brillo_export.h> 12#include <brillo/message_loops/message_loop.h> 13 14namespace brillo { 15 16// Run the MessageLoop until the condition passed in |terminate| returns true 17// or the timeout expires. 18BRILLO_EXPORT void MessageLoopRunUntil( 19 MessageLoop* loop, 20 base::TimeDelta timeout, 21 base::Callback<bool()> terminate); 22 23// Run the MessageLoop |loop| for up to |iterations| times without blocking. 24// Return the number of tasks run. 25BRILLO_EXPORT int MessageLoopRunMaxIterations(MessageLoop* loop, 26 int iterations); 27 28} // namespace brillo 29 30#endif // LIBBRILLO_BRILLO_MESSAGE_LOOPS_MESSAGE_LOOP_UTILS_H_ 31