Removed deprecated MacOSX OSSpinLockLock().
This commit is contained in:
parent
74b69f5e95
commit
4bb4525031
3 changed files with 2 additions and 80 deletions
23
auto/threads
23
auto/threads
|
@ -123,29 +123,6 @@ if [ $nxt_found = yes ]; then
|
||||||
fi
|
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="sem_timedwait()"
|
||||||
nxt_feature_name=NXT_HAVE_SEM_TIMEDWAIT
|
nxt_feature_name=NXT_HAVE_SEM_TIMEDWAIT
|
||||||
nxt_feature_run=yes
|
nxt_feature_run=yes
|
||||||
|
|
|
@ -15,11 +15,8 @@
|
||||||
* FreeBSD 5.2 and Solaris 10 support pthread spinlocks. Spinlock is a
|
* FreeBSD 5.2 and Solaris 10 support pthread spinlocks. Spinlock is a
|
||||||
* structure and uses mutex implementation so it must be initialized by
|
* structure and uses mutex implementation so it must be initialized by
|
||||||
* by pthread_spin_init() and destroyed by pthread_spin_destroy().
|
* by pthread_spin_init() and destroyed by pthread_spin_destroy().
|
||||||
*/
|
*
|
||||||
|
* MacOSX supported OSSpinLockLock(), it was deprecated in 10.12 (Sierra).
|
||||||
#if (NXT_HAVE_MACOSX_SPINLOCK)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* OSSpinLockLock() tries to acquire a lock atomically. If the lock is
|
* 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
|
* busy, on SMP system it tests the lock 1000 times in a tight loop with
|
||||||
* "pause" instruction. If the lock has been released, OSSpinLockLock()
|
* "pause" instruction. If the lock has been released, OSSpinLockLock()
|
||||||
|
@ -29,41 +26,6 @@
|
||||||
* with depressed (the lowest) priority.
|
* 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. */
|
/* It should be adjusted with the "spinlock_count" directive. */
|
||||||
static nxt_uint_t nxt_spinlock_count = 1000;
|
static nxt_uint_t nxt_spinlock_count = 1000;
|
||||||
|
@ -148,5 +110,3 @@ nxt_thread_spin_unlock(nxt_thread_spinlock_t *lock)
|
||||||
|
|
||||||
nxt_thread_log_debug("spin_unlock(%p) exit", lock);
|
nxt_thread_log_debug("spin_unlock(%p) exit", lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -8,24 +8,9 @@
|
||||||
#define _NXT_UNIX_SPINLOCK_H_INCLUDED_
|
#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;
|
typedef nxt_atomic_t nxt_thread_spinlock_t;
|
||||||
|
|
||||||
NXT_EXPORT void nxt_thread_spin_init(nxt_uint_t ncpu, nxt_uint_t count);
|
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 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 nxt_bool_t nxt_thread_spin_trylock(nxt_thread_spinlock_t *lock);
|
||||||
NXT_EXPORT void nxt_thread_spin_unlock(nxt_thread_spinlock_t *lock);
|
NXT_EXPORT void nxt_thread_spin_unlock(nxt_thread_spinlock_t *lock);
|
||||||
|
|
Loading…
Reference in a new issue