About priority ceiling semaphores

Luís Henriques lhenriques at criticalsoftware.com
Thu Feb 26 17:06:52 UTC 2004


Hi,

I'm using RTEMS v. 4.5.0 and I have a question about the use of priority
ceiling semaphores.

I have an application that creates two binary semaphores with the following
attributes:

 * RTEMS_PRIORITY
 * RTEMS_BINARY_SEMAPHORE
 * RTEMS_NO_INHERIT_PRIORITY
 * RTEMS_PRIORITY_CEILING
 * RTEMS_LOCAL

Semaphore A has the priority ceiling set to 15 and semaphore B has the
priority ceiling set to 10.

Then, in a task, I obtain semaphore A (and the task priority is set
15). Later, still with semaphore A belonging to the task, I obtain
semaphore B (and the task priority is raised again to 10).

The question is: what should happen to the task priority after the
release of semaphore B? I was expecting that the priority would be set
to 15 again but what really happens is that it is maintained at 10 --
only after releasing semaphore A the priority is changed again.

Is this behaviour correct? Or is a problem (probably already fixed in
later versions) in RTEMS?

Thanks in advance.

-- 
Luís Henriques



More information about the users mailing list