/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifdefined(XP_WIN) # include "mozilla/Futex.h" #elif !defined(__wasi__) # include <pthread.h> #endif
namespace mozilla {
enumclass CVStatus { NoTimeout, Timeout };
namespace detail {
class ConditionVariableImpl {
public:
MFBT_API ConditionVariableImpl();
MFBT_API ~ConditionVariableImpl();
// Wake one thread that is waiting on this condition.
MFBT_API void notify_one();
// Wake all threads that are waiting on this condition.
MFBT_API void notify_all();
// Atomically release |lock| and sleep the current thread of execution on // this condition variable. // |lock| will be re-acquired before this function returns. // The thread may be woken from sleep from another thread via notify_one() // or notify_all(), but may also wake spuriously. The caller should recheck // its predicate after this function returns, typically in a while loop.
MFBT_API void wait(MutexImpl& lock);
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.