#3791 new defect

POSIX Message Queue thread release order is not priority based

Reported by: Lou Woods Owned by:
Priority: normal Milestone:
Component: posix Version: 5
Severity: normal Keywords: mq_receive mq_timedreceive mq_send mq_timedsend
Cc: Blocked By:
Blocking:

Description

Currently the POSIX Message Queue implementation will release threads blocked on all waiting calls in FIFO order. This is counter to the Open Group specification.

mq_receive() Description Paragraph 4:
If more than one thread is waiting to receive a message when a message arrives at an empty queue and the Priority Scheduling option is supported, then the thread of highest priority that has been waiting the longest shall be selected to receive the message.

Source: http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_receive.html

Behavior tested on
RTEMS 5 master
xilinx_zynq_a9_qemu BSP

Tests demonstrating the behavior and a fix will be sent to the devel mailing list.

Change History (0)

Note: See TracTickets for help on using tickets.