message queues bet independent processes

I created three processes.In first process created message queue and started sending.In second process opened queue and started receiving.it’s working fine.But when i created third process opened same queue and started sending messages it’s sending but not receiving in second process.where my messages are going.there is no error in opening queue.it is giving same queue id as of other two processes.
i opened queue in first process with this call and respectively in other processes.
sender first process
msgid = mq_open( “/queue”, O_CREAT|O_RDWR, 777, &attr);

receiver second process
msgid = mq_open("/queue" , NULL, NULL, NULL);

sender third process

msgid = mq_open("/queue" , NULL, NULL, NULL);

or do i need to go for any synchronization tool.any way i am putting sleep in between mq_send.

Thanks in advance.

Are you checking the error code return by mq_open() because the doc says you must specify one of O_RDONLY (receive-only), O_WRONLY (send-only) or O_RDWR (send-receive)