/* 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/. */ #include "mozilla/SchedulerGroup.h" #include "nsThreadUtils.h" namespace mozilla { /* static */ nsresult SchedulerGroup::Dispatch(already_AddRefed aRunnable, nsIEventTarget::DispatchFlags aFlags) { if (NS_IsMainThread()) { // NOTE: NS_DispatchToCurrentThread always specifies `NS_DISPATCH_FALLIBLE`. // This is done to maintain previous behaviour that all SchedulerGroup // dispatches from the main thread to the main thread are non-leaking. return NS_DispatchToCurrentThread(std::move(aRunnable)); } return NS_DispatchToMainThread(std::move(aRunnable), aFlags); } } // namespace mozilla