Skip to content

Commit

Permalink
Removed deprecated MacOSX OSSpinLockLock().
Browse files Browse the repository at this point in the history
  • Loading branch information
igorsysoev committed Sep 17, 2018
1 parent 74b69f5 commit 4bb4525
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 80 deletions.
23 changes: 0 additions & 23 deletions auto/threads
Expand Up @@ -123,29 +123,6 @@ if [ $nxt_found = yes ]; then
fi


if [ $nxt_found = no ]; then

# MacOSX spinlock(3).

nxt_feature="MacOSX spinlock"
nxt_feature_name=NXT_HAVE_MACOSX_SPINLOCK
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs=$NXT_PTHREAD
nxt_feature_test="#include <libkern/OSAtomic.h>

int main() {
OSSpinLock lock = 0;

if (OSSpinLockTry(&lock) == 0)
return 1;
OSSpinLockUnlock(&lock);
return 0;
}"
. auto/feature
fi


nxt_feature="sem_timedwait()"
nxt_feature_name=NXT_HAVE_SEM_TIMEDWAIT
nxt_feature_run=yes
Expand Down
44 changes: 2 additions & 42 deletions src/nxt_spinlock.c
Expand Up @@ -15,11 +15,8 @@
* FreeBSD 5.2 and Solaris 10 support pthread spinlocks. Spinlock is a
* structure and uses mutex implementation so it must be initialized by
* by pthread_spin_init() and destroyed by pthread_spin_destroy().
*/

#if (NXT_HAVE_MACOSX_SPINLOCK)

/*
*
* MacOSX supported OSSpinLockLock(), it was deprecated in 10.12 (Sierra).
* OSSpinLockLock() tries to acquire a lock atomically. If the lock is
* busy, on SMP system it tests the lock 1000 times in a tight loop with
* "pause" instruction. If the lock has been released, OSSpinLockLock()
Expand All @@ -29,41 +26,6 @@
* with depressed (the lowest) priority.
*/

void
nxt_thread_spin_lock(nxt_thread_spinlock_t *lock)
{
nxt_thread_log_debug("OSSpinLockLock(%p) enter", lock);

OSSpinLockLock(lock);
}


nxt_bool_t
nxt_thread_spin_trylock(nxt_thread_spinlock_t *lock)
{
nxt_thread_log_debug("OSSpinLockTry(%p) enter", lock);

if (OSSpinLockTry(lock)) {
return 1;
}

nxt_thread_log_debug("OSSpinLockTry(%p) failed", lock);

return 0;
}


void
nxt_thread_spin_unlock(nxt_thread_spinlock_t *lock)
{
OSSpinLockUnlock(lock);

nxt_thread_log_debug("OSSpinLockUnlock(%p) exit", lock);
}


#else


/* It should be adjusted with the "spinlock_count" directive. */
static nxt_uint_t nxt_spinlock_count = 1000;
Expand Down Expand Up @@ -148,5 +110,3 @@ nxt_thread_spin_unlock(nxt_thread_spinlock_t *lock)

nxt_thread_log_debug("spin_unlock(%p) exit", lock);
}

#endif
15 changes: 0 additions & 15 deletions src/nxt_spinlock.h
Expand Up @@ -8,24 +8,9 @@
#define _NXT_UNIX_SPINLOCK_H_INCLUDED_


#if (NXT_HAVE_MACOSX_SPINLOCK)

#include <libkern/OSAtomic.h>

typedef OSSpinLock nxt_thread_spinlock_t;

#define \
nxt_thread_spin_init(ncpu, count)

#else

typedef nxt_atomic_t nxt_thread_spinlock_t;

NXT_EXPORT void nxt_thread_spin_init(nxt_uint_t ncpu, nxt_uint_t count);

#endif


NXT_EXPORT void nxt_thread_spin_lock(nxt_thread_spinlock_t *lock);
NXT_EXPORT nxt_bool_t nxt_thread_spin_trylock(nxt_thread_spinlock_t *lock);
NXT_EXPORT void nxt_thread_spin_unlock(nxt_thread_spinlock_t *lock);
Expand Down

0 comments on commit 4bb4525

Please sign in to comment.