Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Feb 2004 10:02:01 -0500 (EST)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Dag-Erling =?iso-8859-1?q?Sm=F8rgrav?= <des@des.no>
Cc:        threads@freebsd.org
Subject:   Re: cross-thread locking
Message-ID:  <Pine.GSO.4.10.10402200935470.23368-100000@pcnet5.pcnet.com>
In-Reply-To: <xzp8yix7vae.fsf@dwp.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 20 Feb 2004, Dag-Erling [iso-8859-1] Sm=F8rgrav wrote:

> - What happens when a thread locks a mutex and then starts another
>   thread?  Does the new thread in any way inherit the lock, or will it
>   have to acquire its own?

No, it doesn't inherit any locks.

> - What about spin locks?  Are there any semantic differences between
>   mutexes and spin locks in POSIX, or are spin locks simply mutexes
>   that spin instead of sleeping?

POSIX differentiates between spinlocks and mutexes, and that is
why there is a pthread_spinlock_t instead of using pthread_mutex_t
for both lock operations.  I believe the implementation is allowed
to spin indefinitely or schedule another thread if the lock is
busy.

I can't find a rationale for spinlocks; I _thought_ there was
one in some draft of the spec that I had read.  I wouldn't
really advocate using spinlocks due to possible priority
inversion problems and wasting cycles.

--=20
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10402200935470.23368-100000>