Draft pthread_spin_init(2) manual page
Florian Weimer
fweimer@redhat.com
Wed Oct 18 09:09:00 GMT 2017
On 10/18/2017 10:10 AM, Michael Kerrisk (man-pages) wrote:
> DESCRIPTION
> The pthread_spin_init() function allocates any resources required
> for the use of the spin lock referred to by lock and initializes
> the lock to be in the unlocked state. The pshared argument must
> have one of the following values:
I think somewhere this should say that it is not possible to change the
address of a spinlock after initialization (you can't memcpy it
somewhere else and expect that it will keep working). Other pthread
objects have the same problem, of course.
> NOTES
> Spin locks should be employed in conjunction with real-time schedâ
> uling policies (SCHED_FIFO, or possibly SCHED_RR). Use of spin
> locks with nondeterministic scheduling policies such as
> SCHED_OTHER probably indicates a design mistake. The problem is
> that if a thread operating under such a policy is scheduled off
> the CPU while it holds a spin lock, then other threads will waste
> time spinning on the lock until the lock holder is once more
> rescheduled and releases the lock.
Isn't the more important concern whether there are sufficient resources
to run all the threads that block on spinlocks?
Thanks,
Florian
More information about the Libc-alpha
mailing list