Add some conveniences to Clock and thread. Allow atomic load on booleans.

This commit is contained in:
Christoffer Lerno
2025-02-21 15:56:32 +01:00
parent 9c60c2cb33
commit 3ef094a3d3
4 changed files with 111 additions and 0 deletions

View File

@@ -45,6 +45,12 @@ macro void! TimedMutex.lock_timeout(&mutex, ulong ms) => NativeMutex.lock_timeou
macro void! TimedRecursiveMutex.lock_timeout(&mutex, ulong ms) => NativeMutex.lock_timeout((NativeMutex*)mutex, ms);
macro bool Mutex.try_lock(&mutex) => NativeMutex.try_lock((NativeMutex*)mutex);
macro void! Mutex.unlock(&mutex) => NativeMutex.unlock((NativeMutex*)mutex);
macro void Mutex.@in_lock(&mutex; @body)
{
(void)mutex.lock();
defer (void)mutex.unlock();
@body();
}
macro void! ConditionVariable.init(&cond) => NativeConditionVariable.init((NativeConditionVariable*)cond);
macro void! ConditionVariable.destroy(&cond) => NativeConditionVariable.destroy((NativeConditionVariable*)cond);