anchao opened a new issue #1804: URL: https://github.com/apache/incubator-nuttx/issues/1804
We already have the corresponding fix on https://github.com/apache/incubator-nuttx/pull/1585 but which still pending on review, @patacongo could you please kindly fix this issue if you do not like our solution? Enable config: ``` CONFIG_DEBUG_ASSERTIONS=y CONFIG_DEBUG_FEATURES=y ``` Example code as below: ``` #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <mqueue.h> #include <pthread.h> #include <errno.h> static mqd_t qid; static void *recv_thread(void *arg) { struct mq_attr attr; int deadcounter; int ret; mq_getattr(qid, &attr); while (1) { ret = mq_receive(qid, (void *)&deadcounter, attr.mq_msgsize, NULL); if (ret > 0) { printf("deadcounter: %d\n", deadcounter); } } return NULL; } int main(int argc, char *argv[]) { int counter = 3; pthread_t pid; int ret; qid = mq_open("/test", O_RDWR | O_CREAT | O_EXCL, 0666, NULL); if (qid < 0) { if (errno == EEXIST) { mq_unlink("/test"); qid = mq_open("/test", O_RDWR | O_CREAT, 0666, NULL); } else return -1; } ret = pthread_create(&pid, NULL, recv_thread, NULL); if (ret < 0) goto bail; while (mq_send(qid, (void *)&counter, sizeof(int), 1) >= 0) { sleep(1); if (counter-- == 0) pthread_cancel(pid); } bail: mq_close(qid); return 0; } ``` Assertion: ``` NuttShell (NSH) NuttX-9.1.0 MOTD: username=admin password=Administrator nsh> hello deadcounter: 3 deadcounter: 2 deadcounter: 1 deadcounter: 0 Assertion failed at file:mqueue/mq_sndinternal.c line: 420 ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org