7#include <QtCore/qglobal.h>
8#include <QtCore/qdeadlinetimer.h>
16class QSemaphorePrivate;
20 explicit QSemaphore(
int n = 0);
23 void acquire(
int n = 1);
24 bool tryAcquire(
int n = 1);
25 QT_CORE_INLINE_SINCE(6, 6)
26 bool tryAcquire(
int n,
int timeout);
27 bool tryAcquire(
int n, QDeadlineTimer timeout);
28#if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
29 template <
typename Rep,
typename Period>
30 bool tryAcquire(
int n, std::chrono::duration<Rep, Period> timeout)
31 {
return tryAcquire(n, QDeadlineTimer(timeout)); }
34 void release(
int n = 1);
36 int available()
const;
39 bool try_acquire()
noexcept {
return tryAcquire(); }
40 template <
typename Rep,
typename Period>
41 bool try_acquire_for(
const std::chrono::duration<Rep, Period> &timeout)
42 {
return tryAcquire(1, timeout); }
43 template <
typename Clock,
typename Duration>
44 bool try_acquire_until(
const std::chrono::time_point<Clock, Duration> &tp)
46 return try_acquire_for(tp - Clock::now());
49 Q_DISABLE_COPY(QSemaphore)
53 QBasicAtomicInteger<quintptr> u;
54 QBasicAtomicInteger<quint32> u32[2];
55 QBasicAtomicInteger<quint64> u64;
59#if QT_CORE_INLINE_IMPL_SINCE(6
, 6
)
60bool QSemaphore::tryAcquire(
int n,
int timeout)
62 return tryAcquire(n, QDeadlineTimer(timeout));
The QSemaphoreReleaser class provides exception-safe deferral of a QSemaphore::release() call.
\preliminary \inmodule QtCorePrivate
Q_CORE_EXPORT void unregisterNewIntentListener(NewIntentListener *listener)
Q_CORE_EXPORT int acuqireServiceSetup(int flags)
Q_CORE_EXPORT void registerNewIntentListener(NewIntentListener *listener)
Q_CORE_EXPORT void unregisterResumePauseListener(ResumePauseListener *listener)
Q_CORE_EXPORT void unregisterGenericMotionEventListener(GenericMotionEventListener *listener)
Q_CORE_EXPORT bool acquireAndroidDeadlockProtector()
Q_CORE_EXPORT void unregisterKeyEventListener(KeyEventListener *listener)
Q_CORE_EXPORT void handleResume()
Q_CORE_EXPORT void registerResumePauseListener(ResumePauseListener *listener)
Q_CORE_EXPORT void releaseAndroidDeadlockProtector()
Q_CORE_EXPORT void handleNewIntent(JNIEnv *env, jobject intent)
Q_CORE_EXPORT void setOnBindListener(OnBindListener *listener)
Q_CORE_EXPORT void registerKeyEventListener(KeyEventListener *listener)
Q_CORE_EXPORT void handlePause()
Q_CORE_EXPORT bool isUncompressedNativeLibs()
Q_CORE_EXPORT void unregisterActivityResultListener(ActivityResultListener *listener)
Q_CORE_EXPORT void registerGenericMotionEventListener(GenericMotionEventListener *listener)
Q_CORE_EXPORT void handleActivityResult(jint requestCode, jint resultCode, jobject data)
Q_CORE_EXPORT void waitForServiceSetup()
Q_CORE_EXPORT void registerActivityResultListener(ActivityResultListener *listener)
Q_GLOBAL_STATIC(DefaultRoleNames, qDefaultRoleNames, { { Qt::DisplayRole, "display" }, { Qt::DecorationRole, "decoration" }, { Qt::EditRole, "edit" }, { Qt::ToolTipRole, "toolTip" }, { Qt::StatusTipRole, "statusTip" }, { Qt::WhatsThisRole, "whatsThis" }, }) const QHash< int
QT_REQUIRE_CONFIG(itemmodel)
Q_DECLARE_JNI_NATIVE_METHOD(dispatchKeyEvent)
Q_DECLARE_JNI_NATIVE_METHOD(dispatchGenericMotionEvent)
static jobject g_jClassLoader
static jboolean dispatchGenericMotionEvent(JNIEnv *, jclass, QtJniTypes::MotionEvent event)
Q_GLOBAL_STATIC(QReadWriteLock, g_updateMutex)
static jobject g_jActivity
Q_DECLARE_JNI_CLASS(MotionEvent, "android/view/MotionEvent")
static jboolean updateNativeActivity(JNIEnv *env, jclass=nullptr)
static jboolean dispatchKeyEvent(JNIEnv *, jclass, QtJniTypes::KeyEvent event)
static jobject g_jService