summaryrefslogtreecommitdiffstats
path: root/doc/user/sem.t
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-05-26 16:02:58 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-06-03 08:15:16 +0200
commit9553e7a60d42d46b6f1260121ece58217ad0384f (patch)
treedc7e8f6bbd9b0597fceaa91d735ce95bcab1000c /doc/user/sem.t
parentscore: Add resource node to thread control block (diff)
downloadrtems-9553e7a60d42d46b6f1260121ece58217ad0384f.tar.bz2
score: Use Resource Handler for MrsP semaphores
This enables proper resource dependency tracking and as a side-effect deadlock detection.
Diffstat (limited to '')
-rw-r--r--doc/user/sem.t11
1 files changed, 10 insertions, 1 deletions
diff --git a/doc/user/sem.t b/doc/user/sem.t
index 95fa4b90ae..6bd22dd3d7 100644
--- a/doc/user/sem.t
+++ b/doc/user/sem.t
@@ -751,6 +751,10 @@ willing to be blocked waiting for the semaphore. If it is set to
If the semaphore is available or the @code{@value{RPREFIX}NO_WAIT} option
component is set, then timeout is ignored.
+Deadlock situations are detected for MrsP semaphores and the
+@code{@value{RPREFIX}UNSATISFIED} status code will be returned on SMP
+configurations in this case.
+
@subheading NOTES:
The following semaphore acquisition option constants
are defined by RTEMS:
@@ -806,7 +810,8 @@ procedure Semaphore_Release (
@subheading DIRECTIVE STATUS CODES:
@code{@value{RPREFIX}SUCCESSFUL} - semaphore released successfully@*
@code{@value{RPREFIX}INVALID_ID} - invalid semaphore id@*
-@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - calling task does not own semaphore
+@code{@value{RPREFIX}NOT_OWNER_OF_RESOURCE} - calling task does not own semaphore@*
+@code{@value{RPREFIX}INCORRECT_STATE} - invalid unlock order
@subheading DESCRIPTION:
@@ -838,6 +843,10 @@ calling task having its priority lowered. This will occur if
the calling task holds no other binary semaphores and it has
inherited a higher priority.
+The MrsP semaphores must be released in the reversed obtain order, otherwise
+the @code{@value{RPREFIX}INCORRECT_STATE} status code will be returned on SMP
+configurations in this case.
+
@c
@c
@c