/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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/. */
/** * This is intended to be used by encoders/decoders that will make a GMP call * that is a synchronous post to the GMP worker thread. Because the GMP worker * threads can synchronously callback to the main thread, this has the potential * for a deadlock. If the encoder/decoder tracks any outstanding requests that * will result in a synchronous callback to the main thread, we can simply spin * the event loop on those callbacks until they are completed. Then we can * safefully make our own synchronous call to the GMP worker thread without fear * of a deadlock. * * Note that each encoder/decoder has its own worker thread, so assuming we * drain the synchronous events for that specific encoder/decoder, we know there * are no more forthcoming to cause us to deadlock.
*/ using SpinPendingPredicate = std::function<bool()>; bool SpinPendingGmpEventsUntil(const SpinPendingPredicate& aPred,
uint32_t aTimeoutMs);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.