зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1268253 - MainThreadStopSyncLoopRunnable doesn't need to be exposed, r=khuey
This commit is contained in:
Родитель
59521d1cef
Коммит
067604a67d
|
@ -31,6 +31,48 @@ const nsIID kWorkerRunnableIID = {
|
|||
0x320cc0b5, 0xef12, 0x4084, { 0x88, 0x6e, 0xca, 0x6a, 0x81, 0xe4, 0x1d, 0x68 }
|
||||
};
|
||||
|
||||
// This runnable is used to stop a sync loop and it's meant to be used on the
|
||||
// main-thread only. As sync loops keep the busy count incremented as long as
|
||||
// they run this runnable does not modify the busy count
|
||||
// in any way.
|
||||
class MainThreadStopSyncLoopRunnable : public WorkerSyncRunnable
|
||||
{
|
||||
bool mResult;
|
||||
|
||||
public:
|
||||
// Passing null for aSyncLoopTarget is not allowed.
|
||||
MainThreadStopSyncLoopRunnable(
|
||||
WorkerPrivate* aWorkerPrivate,
|
||||
already_AddRefed<nsIEventTarget>&& aSyncLoopTarget,
|
||||
bool aResult);
|
||||
|
||||
// By default StopSyncLoopRunnables cannot be canceled since they could leave
|
||||
// a sync loop spinning forever.
|
||||
nsresult
|
||||
Cancel() override;
|
||||
|
||||
protected:
|
||||
virtual ~MainThreadStopSyncLoopRunnable()
|
||||
{ }
|
||||
|
||||
private:
|
||||
virtual bool
|
||||
PreDispatch(WorkerPrivate* aWorkerPrivate) override final
|
||||
{
|
||||
AssertIsOnMainThread();
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void
|
||||
PostDispatch(WorkerPrivate* aWorkerPrivate, bool aDispatchResult) override;
|
||||
|
||||
virtual bool
|
||||
WorkerRun(JSContext* aCx, WorkerPrivate* aWorkerPrivate) override;
|
||||
|
||||
virtual bool
|
||||
DispatchInternal() override final;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -264,48 +264,6 @@ private:
|
|||
PostDispatch(WorkerPrivate* aWorkerPrivate, bool aDispatchResult) override;
|
||||
};
|
||||
|
||||
// This runnable is used to stop a sync loop and it's meant to be used on the
|
||||
// main-thread only. As sync loops keep the busy count incremented as long as
|
||||
// they run this runnable does not modify the busy count
|
||||
// in any way.
|
||||
class MainThreadStopSyncLoopRunnable : public WorkerSyncRunnable
|
||||
{
|
||||
bool mResult;
|
||||
|
||||
public:
|
||||
// Passing null for aSyncLoopTarget is not allowed.
|
||||
MainThreadStopSyncLoopRunnable(
|
||||
WorkerPrivate* aWorkerPrivate,
|
||||
already_AddRefed<nsIEventTarget>&& aSyncLoopTarget,
|
||||
bool aResult);
|
||||
|
||||
// By default StopSyncLoopRunnables cannot be canceled since they could leave
|
||||
// a sync loop spinning forever.
|
||||
nsresult
|
||||
Cancel() override;
|
||||
|
||||
protected:
|
||||
virtual ~MainThreadStopSyncLoopRunnable()
|
||||
{ }
|
||||
|
||||
private:
|
||||
virtual bool
|
||||
PreDispatch(WorkerPrivate* aWorkerPrivate) override final
|
||||
{
|
||||
AssertIsOnMainThread();
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void
|
||||
PostDispatch(WorkerPrivate* aWorkerPrivate, bool aDispatchResult) override;
|
||||
|
||||
virtual bool
|
||||
WorkerRun(JSContext* aCx, WorkerPrivate* aWorkerPrivate) override;
|
||||
|
||||
virtual bool
|
||||
DispatchInternal() override final;
|
||||
};
|
||||
|
||||
// This runnable is processed as soon as it is received by the worker,
|
||||
// potentially running before previously queued runnables and perhaps even with
|
||||
// other JS code executing on the stack. These runnables must not alter the
|
||||
|
|
Загрузка…
Ссылка в новой задаче