QueueObject.cpp (948B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "QueueObject.h" 8 9 #include "mozilla/AbstractThread.h" 10 #include "mozilla/TaskQueue.h" 11 #include "nsThreadUtils.h" 12 13 namespace mozilla { 14 15 QueueObject::QueueObject(RefPtr<AbstractThread> aThread) : mThread(aThread) {} 16 17 QueueObject::~QueueObject() = default; 18 19 void QueueObject::Dispatch(nsIRunnable* aRunnable) { 20 Dispatch(do_AddRef(aRunnable)); 21 } 22 23 void QueueObject::Dispatch(already_AddRefed<nsIRunnable> aRunnable) { 24 mThread->Dispatch(std::move(aRunnable)); 25 } 26 27 bool QueueObject::OnThread() { return mThread->IsCurrentThreadIn(); } 28 29 AbstractThread* QueueObject::Thread() { return mThread; } 30 } // namespace mozilla