From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Nero Fernandez <grimlynch@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-core] Fwd: problem in pthread_mutex_lock/unlock
Date: Fri, 18 Jun 2010 21:45:03 +0200 [thread overview]
Message-ID: <4C1BCCBF.7010400@domain.hid> (raw)
In-Reply-To: <4C1B8C04.3010900@domain.hid>
Gilles Chanteperdrix wrote:
> Nero Fernandez wrote:
>> On Fri, Jun 18, 2010 at 7:42 PM, Gilles Chanteperdrix
>> <gilles.chanteperdrix@xenomai.org
>> <mailto:gilles.chanteperdrix@xenomai.org>> wrote:
>>
>> Nero Fernandez wrote:
>> > Hi,
>> >
>> > Please find an archive attached, containing :
>> > - a program for testing context-switch-latency using posix-APIs
>> > for native linux kernel and xenomai-posix-skin (userspace).
>> > - Makefile to build it using xenomai
>>
>> Your program is very long to tell fast. But it seems you are using the
>> mutex as if they were recursive. Xenomai posix skin mutexes used to be
>> recursive by default, but no longer are.
>>
>> Also note that your code does not check the return value of the posix
>> skin services, which is a really bad idea.
>>
>> --
>> Gilles.
>>
>>
>> Thanks for the prompt response.
>>
>> Could you explain 'recursive usage of mutex' a little further?
>> Are the xenomai pthread-mutexes very different in behaviour than regular
>> posix mutexes?
>
> The posix specification does not define the default type of a mutex. So,
> in short, the behaviour of a "regular posix mutex" is unspecified.
> However, following the principle of least surprise, Xenomai chose, like
> Linux, to use the "normal" type by default.
>
> What is the type of a posix mutex is explained in many places, starting
> with Xenomai API documentation. So, no, I will not repeat it here.
Actually, that is not your problem. However, you do not check the return
value of posix services, which is a bad idea. And indeed, if you check
it you will find your error: a thread which does not own a mutex tries
to unlock it.
Sorry, mutex are not semaphore, this is invalid, and Xenomai returns an
error in such a case.
--
Gilles.
next prev parent reply other threads:[~2010-06-18 19:45 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-18 13:52 [Xenomai-core] problem in pthread_mutex_lock/unlock Nero Fernandez
2010-06-18 14:12 ` Gilles Chanteperdrix
[not found] ` <AANLkTinABTK2nMI0QfZVaULQ4OKwF0678PKOBc_OMIn1@domain.hid>
2010-06-18 14:59 ` [Xenomai-core] Fwd: " Nero Fernandez
2010-06-18 15:08 ` Gilles Chanteperdrix
2010-06-18 19:45 ` Gilles Chanteperdrix [this message]
2010-06-23 20:45 ` Nero Fernandez
2010-06-23 22:00 ` Philippe Gerum
2010-06-24 11:35 ` Nero Fernandez
2010-06-24 11:50 ` Gilles Chanteperdrix
2010-06-24 13:21 ` Nero Fernandez
2010-06-24 14:14 ` Gilles Chanteperdrix
2010-06-28 17:53 ` Nero Fernandez
2010-06-28 19:26 ` Gilles Chanteperdrix
2010-06-24 20:40 ` Gilles Chanteperdrix
2010-06-25 15:00 ` [Xenomai-core] co-kernel benchmarking on arm926 (was: Fwd: problem in pthread_mutex_lock/unlock) Philippe Gerum
2010-06-28 17:50 ` Nero Fernandez
2010-06-28 21:31 ` Philippe Gerum
2010-06-28 21:50 ` [Xenomai-core] co-kernel benchmarking on arm926 Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C1BCCBF.7010400@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=grimlynch@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.