gecko-dev/xpcom/threads/nsIIncrementalRunnable.h
Andreas Farre d87b4d239b Bug 1198381 - Extend nsIThread with idleDispatch, r=froydnj,smaug
The intent of idleDispatch is the possibility to have a runnable
executed when the thread is idle. This is accomplished by adding an
event queue for idle tasks that will only be considered when the main
event queue is empty and the caller of ProcessNextEvent doesn't
require that we wait until there is an event on the main event queue.

MozReview-Commit-ID: IDWQfzZqWpZ

--HG--
extra : rebase_source : 0d5bfeebd08e01597c2cd8b76e8e848d9f9c58f0
2016-08-24 16:18:06 +02:00

42 lines
1.2 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nsIIncrementalRunnable_h__
#define nsIIncrementalRunnable_h__
#include "nsISupports.h"
#include "mozilla/TimeStamp.h"
#define NS_IINCREMENTALRUNNABLE_IID \
{ 0x688be92e, 0x7ade, 0x4fdc, \
{ 0x9d, 0x83, 0x74, 0xcb, 0xef, 0xf4, 0xa5, 0x2c } }
/**
* A task interface for tasks that can schedule their work to happen
* in increments bounded by a deadline.
*/
class nsIIncrementalRunnable : public nsISupports
{
public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IINCREMENTALRUNNABLE_IID)
/**
* Notify the task of a point in time in the future when the task
* should stop executing.
*/
virtual void SetDeadline(mozilla::TimeStamp aDeadline) = 0;
protected:
nsIIncrementalRunnable() { }
virtual ~nsIIncrementalRunnable() {}
};
NS_DEFINE_STATIC_IID_ACCESSOR(nsIIncrementalRunnable,
NS_IINCREMENTALRUNNABLE_IID)
#endif // nsIIncrementalRunnable_h__