Re: recursive locking in linux?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2007-03-19 at 18:04 +0530, Daniel Rodrick wrote:
> On 3/19/07, Momchil Velikov <chill@xxxxxxxxx> wrote:
> > Daniel Rodrick wrote:
> > > I may be wrong, but from what I understand, the count passed in the
> > > semaphore initialization
> > >
> > > sema_init(sem, count);
> > >
> > > is the number of threads that are allowed to hold the semaphore
> > > simultaneously (no of threads that are allowed to enter their critical
> > > sections simultaneously). So can't a semaphore be actually held
> > > recursively?
> >
> > Semaphores are not "held". See below.
> >
> > > Also, the only difference I could find between a semaphore and mutes
> > > is that a mutex is a specail and most common form of semaphore where
> > > only one thread can get it at a time. Are there any other differences?
> >
> > The difference is that a semaphore has no owner.  Neither semaphores nor
> > mutexes are a "special form" of the other - they are fundamentally
> > distinct mechanisms.
> >
> 
> But I see mutexes implemented using semaphores only:
> 
> #define __DECLARE_SEMAPHORE_GENERIC(name,count) \
>         struct semaphore name = __SEMAPHORE_INITIALIZER(name,count)
> 
> #define DECLARE_MUTEX(name) __DECLARE_SEMAPHORE_GENERIC(name,1)
> #define DECLARE_MUTEX_LOCKED(name) __DECLARE_SEMAPHORE_GENERIC(name,0)

that's a legacy name. Check DEFINE_MUTEX

-- 
if you want to mail me at work (you don't), use arjan (at) linux.intel.com
Test the interaction between Linux and your BIOS via http://www.linuxfirmwarekit.org


--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux