Skip to content

Commit b59bfd0

Browse files
committed
Base: define os_unfair_lock* for Windows
Implement os_unfair_lock using SRWLOCK.
1 parent bb66a54 commit b59bfd0

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

CoreFoundation/Base.subproj/CFInternal.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,12 @@ CF_INLINE Boolean __CFLockTry(volatile CFLock_t *lock) {
572572

573573
#if __has_include(<os/lock.h>)
574574
#include <os/lock.h>
575+
#elif DEPLOYMENT_TARGET_WINDOWS
576+
#define OS_UNFAIR_LOCK_INIT SRWLOCK_INIT
577+
typedef SRWLOCK os_unfair_lock;
578+
typedef SRWLOCK *os_unfair_lock_t;
579+
static void os_unfair_lock_lock(os_unfair_lock_t lock) { AcquireSRWLockExclusive(lock); }
580+
static void os_unfair_lock_unlock(os_unfair_lock_t lock) { ReleaseSRWLockExclusive(lock); }
575581
#elif _POSIX_THREADS
576582
#define OS_UNFAIR_LOCK_INIT PTHREAD_MUTEX_INITIALIZER
577583
typedef pthread_mutex_t os_unfair_lock;

0 commit comments

Comments
 (0)