From: "Ignacio García Pérez" <iggarpe@domain.hid>
To: xenomai@xenomai.org
Subject: [Xenomai-help] timeout in native API calls (cond, sem, mutex, etc).
Date: Thu, 20 Oct 2005 18:20:49 +0200 [thread overview]
Message-ID: <4357C3E1.1040701@domain.hid> (raw)
Hi,
While porting my application, I noticed that all synchronization
primitives locking calls take a relative timeout as a parameter, right?
Of course, I can get the current time, calculate the timeout interval by
substracting the current time from the desired timeout moment, and call
the function. But wouldn't something like this be possible?:
Suppose I want to wait on a semaphore until t=1000, and now=900.
1- I get current time (900).
2- I calculate the relative timeout as 1000-900 = 100
3- I call rt_sem_p(&mysem, 100);
In the best case, no preemption will occur between steps 1 and 3, but my
thread will still be sleeping not until t=1000, but until some time
later, t=1000+d, where d is the time used by the code in steps 1-3 and
into the native skin/nucleus.
In the worst case, in addition to that, the thread will be preempted
between steps 1 and 3. If it is preempted by another higher priority
thread for, say, 50 ticks, and the call in step 3 is actually executed
at t=950, the thread will be sleeping until t=1050+d, which may not be
acceptable.
What do you think?
Nacho.
next reply other threads:[~2005-10-20 16:20 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-20 16:20 Ignacio García Pérez [this message]
2005-10-20 16:46 ` [Xenomai-help] timeout in native API calls (cond, sem, mutex, etc) Jan Kiszka
2005-10-20 17:09 ` Ignacio García Pérez
2005-10-20 17:33 ` Jan Kiszka
2005-10-20 18:18 ` Philippe Gerum
2005-10-20 18:16 ` Philippe Gerum
2005-10-21 7:20 ` Ignacio García Pérez
2005-10-21 10:29 ` Philippe Gerum
2005-10-21 12:02 ` Ignacio García Pérez
2005-10-21 10:51 ` Ignacio García Pérez
2005-10-21 12:23 ` Jan Kiszka
2005-10-21 14:46 ` Ignacio García Pérez
2005-10-21 16:45 ` Philippe Gerum
2005-10-21 16:39 ` Philippe Gerum
2005-10-21 18:55 ` Ignacio García Pérez
2005-10-21 10:52 ` Ignacio García Pérez
2005-10-21 12:16 ` Jan Kiszka
2005-10-21 14:40 ` Ignacio García Pérez
2005-10-21 16:42 ` Philippe Gerum
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=4357C3E1.1040701@domain.hid \
--to=iggarpe@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.