From: Philippe Gerum <rpm@xenomai.org>
To: Petr Cervenka <grugh@domain.hid>
Cc: xenomai-help <xenomai@xenomai.org>
Subject: Re: [Xenomai-help] rt_queue_bind() returns -EACCES
Date: Thu, 11 Aug 2011 11:10:17 +0200 [thread overview]
Message-ID: <1313053817.2133.71.camel@domain.hid> (raw)
In-Reply-To: <20110811103352.902F5E9E@centrum.cz>
On Thu, 2011-08-11 at 10:33 +0200, Petr Cervenka wrote:
> Hello.
>
> I created a simple examples which describe my problem.
> It is some kind of server and client.
> At first run a qserver and then qclient.
> After that close the qserver and try to run it again.
> It disallows (in my configuratio) to create the queue because it already exists and also the binding to it fails with error -EACCES.
> This behavior continues till the qclient is closed. It's perhaps caused by the rt_queue_delete() at the end of qserver.
That is the intended behavior. When deleted, the queue is maintained
internally until the last client bound to it exits, which also disallows
creating another queue with the same name until the latter event
happens.
However, deleting the queue also makes it unreachable for further
bindings, until it is completely dismantled after the last client exits.
At which point you may re-create a queue with the same name and bind to
it. Logically speaking, that deleted queue does not exist anymore,
except for the currently bound client(s), for consistency reasons.
>
> Also I have one question: How to break the rt_queue_bind call with TM_INFINITE parameter, because rt_task_unblock() doesn't work in this case?
>
If the caller is a Xenomai thread, then it should be unblocked with
rt_task_unblock(), otherwise this would be a bug. If this is a plain
linux task, then it would not be allowed to block and immediately return
with -EWOULDBLOCK if the object does not exist.
> ______________________________________________________________
> > Od: "Philippe Gerum" <rpm@xenomai.org>
> > Komu: Petr Cervenka <grugh@domain.hid>
> > Datum: 09.08.2011 18:04
> > Předmět: Re: [Xenomai-help] rt_queue_bind() returns -EACCES
> >
> > CC: "xenomai-help" <xenomai@xenomai.org>
> >On Tue, 2011-08-09 at 17:40 +0200, Petr Cervenka wrote:
> >> Hello everyone.
> >>
> >> I'm trying linux kernel 2.6.38.8 together with xenomai 2.5.6.
> >> My application tries to reuse already created rt_queue shared between couple of similiar applications.
> >> When I try to recreate already existing rt_queue by rt_queue_create i get -EEXIST error (as I expected).
> >> But if I try to bind it immediately with rt_queue_bind(&queue, QUEUE_NAME, TM_NONBLOCK) I get -EACCES error.
> >> This error code is not in documentation and with the previously used version (kernel 2.6.32.6, xenomai 2.4.10) it was working fine.
> >> Do you have any advice or suggestion?
> >
> >-EACCESS is returned in case an attempt is made to use a binding service
> >which does not match the target object. E.g. using rt_queue_bind() for
> >binding an existing task.
> >
> >> Thanks in advance.
> >>
> >> Petr Cervenka
> >>
> >> _______________________________________________
> >> Xenomai-help mailing list
> >> Xenomai-help@domain.hid
> >> https://mail.gna.org/listinfo/xenomai-help
> >
> >--
> >Philippe.
> >
> >
> >
--
Philippe.
next prev parent reply other threads:[~2011-08-11 9:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-09 15:40 [Xenomai-help] rt_queue_bind() returns -EACCES Petr Cervenka
2011-08-09 16:03 ` Philippe Gerum
2011-08-11 8:33 ` Petr Cervenka
2011-08-11 9:10 ` Philippe Gerum [this message]
2011-08-11 9:37 ` Gilles Chanteperdrix
2011-08-11 10:03 ` Philippe Gerum
2011-08-11 10:06 ` Philippe Gerum
2011-08-12 15:13 ` Petr Cervenka
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=1313053817.2133.71.camel@domain.hid \
--to=rpm@xenomai.org \
--cc=grugh@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.