Bug 1411977 - Part 1: Stop queue jumping in RUN_ON_THREAD. r?drno
MozReview-Commit-ID: GaCcLZuo7uy
--- a/media/mtransport/runnable_utils.h
+++ b/media/mtransport/runnable_utils.h
@@ -23,36 +23,17 @@ namespace detail {
enum RunnableResult {
NoResult,
ReturnsResult
};
static inline nsresult
RunOnThreadInternal(nsIEventTarget *thread, nsIRunnable *runnable, uint32_t flags)
{
- nsCOMPtr<nsIRunnable> runnable_ref(runnable);
- if (thread) {
- bool on;
- nsresult rv;
- rv = thread->IsOnCurrentThread(&on);
-
- // If the target thread has already shut down, we don't want to assert.
- if (rv != NS_ERROR_NOT_INITIALIZED) {
- MOZ_ASSERT(NS_SUCCEEDED(rv));
- }
-
- if (NS_WARN_IF(NS_FAILED(rv))) {
- // we're going to destroy the runnable on this thread!
- return rv;
- }
- if (!on) {
- return thread->Dispatch(runnable_ref.forget(), flags);
- }
- }
- return runnable_ref->Run();
+ return thread->Dispatch(runnable, flags);
}
template<RunnableResult result>
class runnable_args_base : public Runnable {
public:
runnable_args_base() : Runnable("media-runnable_args_base") {}
NS_IMETHOD Run() override = 0;