Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Nov 2001 16:47:05 -0800 (PST)
From:      Hiten Pandya <hitmaster2k@yahoo.com>
To:        Maxime Henrion <mux@qualys.com>
Cc:        current@freebsd.org
Subject:   Re: some info (new)
Message-ID:  <20011125004705.22380.qmail@web21109.mail.yahoo.com>
In-Reply-To: <20011125014200.A831@nebula.noos.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
hi maxime...
thanks very very much.. now i get it...,
its like.. a mutex is a lock, which is used when
things are done in parralel and to avoid corruption of
the data which is being processed... i took an example
of the way i used to lock files in PERL, in order to
avoid multiple writes at the same time...

one more question... if there is a lock order
reversal.. is there a way that can be solved.. for
e.g. by using on of the MTX_XX things...

thanks...
regards...

Hiten Pandya
<hitmaster2k@yahoo.com>
--- Maxime Henrion <mux@qualys.com> wrote:
> Hiten Pandya wrote:
> > hi all,
> > sorry for running -current.. but i am an
> enthusiastic
> > and challenging man...(boy)...
> > 
> > anyways.. whats a mutex and a lock order
> reversal...
> > if you could point to some good manual on these
> > subjects... thanks...
> > 
> > help is appreciated...
> > 
> > thanks again...
> 
> A mutex is an algorithmic object used to serialize
> operations.  It
> stands for ``mutual exclusion''.  It's useful when
> the same code is ran
> several times in parallel.  For example, if two
> threads wanted to modify
> a linked list in the same time, there is a chance
> that the linked list
> would get corrupted since an insert or remove
> operation is not atomic
> (one of the thread could get preempted when it has
> not finished to
> remove or insert an element, and thus the linked
> list is not in a normal
> state).
> 
> In such cases, every part of the code that modify
> the linked list has to
> obtain the mutex before doing it and release after. 
> If another thread
> tries to acquire the mutex, it will block until the
> first thread has
> released it.
> 
> When some code has to obtain two locks or more,
> deadlocks might happen.
> If thread 1 has lock A and tries to acquire lock B
> while thread 2 has
> lock B and wants lock A, then both threads will
> block indefinitely.  To
> solve this, one way is to always obtain the lock in
> the same order.  The
> warning messages you got show that some code is
> violating this lock
> order somewhere.
> 
> I found ``Unix Internals'' from Uresh Vahalia to be
> a very good book on
> this topic.
> 
> Hope this helps,
> Maxime Henrion
> -- 
> Don't be fooled by cheap finnish imitations ; BSD is
> the One True Code


=====
regards,
Hiten Pandya
<hitmaster2k@yahoo.com>
<http://geocities.com/hitmaster2k>;

MOTD: I just like _pumping_ the daylights out of a
PENGUIN!!!

__________________________________________________
Do You Yahoo!?
Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011125004705.22380.qmail>