.nf
.B #include <pthread.h>
.PP
-.BI "int pthread_spin_init(pthread_spinlock_t *" lock " int " pshared ");"
-.BI "int pthread_spin_destroy(pthread_spinlock_t *" cock ");"
+.BI "int pthread_spin_init(pthread_spinlock_t *" lock ", int " pshared ");"
+.BI "int pthread_spin_destroy(pthread_spinlock_t *" lock ");"
.fi
.PP
Compile and link with \fI\-pthread\fP.
then other threads will waste time spinning on the lock
until the lock holder is once more rescheduled and releases the lock.
.PP
-.BR Warning :
-if threads create a deadlock situation while employing spin locks,
+If threads create a deadlock situation while employing spin locks,
those threads will spin forever consuming CPU time.
+.PP
+User-space spin locks are
+.I not
+applicable as a general locking solution.
+They are, by definition,
+prone to priority inversion and unbounded spin times.
+A programmer using spin locks must be exceptionally careful not
+only in the code, but also in terms of system configuration,
+thread placement, and priority assignment.
+.\" FIXME . When PTHREAD_MUTEX_ADAPTIVE_NP is one day document
+.\" make reference to it here
.SH SEE ALSO
.ad l
.nh