/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */
#ifdef XP_WIN # error This file should only be compiled on non-Windows platforms. #endif
bool mozilla::detail::RWLockImpl::tryReadLock() { int rv = pthread_rwlock_tryrdlock(&mRWLock); // We allow EDEADLK here because it has been observed returned on macos when // the write lock is held by the current thread.
MOZ_RELEASE_ASSERT(rv == 0 || rv == EBUSY || rv == EDEADLK, "pthread_rwlock_tryrdlock failed"); return rv == 0;
}
bool mozilla::detail::RWLockImpl::tryWriteLock() { int rv = pthread_rwlock_trywrlock(&mRWLock); // We allow EDEADLK here because it has been observed returned on macos when // the write lock is held by the current thread.
MOZ_RELEASE_ASSERT(rv == 0 || rv == EBUSY || rv == EDEADLK, "pthread_rwlock_trywrlock failed"); return rv == 0;
}
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 ist noch experimentell.