uclibc(1.0.12) mq_send return value and errno issue

Waldemar Brodkorb wbx at uclibc-ng.org
Fri Nov 18 06:13:25 UTC 2016


Hi,
Frank Liu wrote,

> Hi All,
> 
> Kernel version : 4.4.19-linux4sam_5.4
> uclibc version : 1.0.12
> uclibc threading support : NPTL
> Processor Arch: ARM

Better you switch to uClibc-ng mailinglist for this question.
 
> We create a NONBLOCKING message queue.
> 
> The expected behavior is when the message queue is full, calling mq_send would return -1 and set errno to EAGAIN(11). However we are seeing some inconsistent behaviors of mq_send.
> 
> When calling mq_send in a single threaded environment, the expected behavior is observed.
> 
> If the program starts a second thread, which is doing completely different task, calling mq_send when the queue is full would return -11 instead of -1. Also, the errno is set to an incorrect value. Values we have seen are 0, 2, which are completely different from the expected EAGAIN(11).

Can you provide a simple test case to check the behaviour?

best regards
 Waldemar


More information about the uClibc mailing list