msgrcv pending forever !!!


 
Thread Tools Search this Thread
Top Forums Programming msgrcv pending forever !!!
# 1  
Old 01-02-2006
Network msgrcv pending forever !!!

When I am using msgrcv to get a message from a queue, in case of msgsnd some error, the msgrcv thread will waiting forever.
Is there some way that I can specify a time out value for this queue ? just let msgrcv wait for some time, if no message comes during this time slot, msgrcv just return failure.

Is there any one know that?

Thank you very much.
# 2  
Old 01-02-2006
Checking it's manpage, I see one possible return value for it being 'EINTR -- while the process was sleeping to recieve a message, the process caught a signal.' So alarm() might be useful, if it'll cause it to return EINTR instead of killing the process.
# 3  
Old 01-03-2006
I believe that the OP is looking to return from the msgrcv call if there is no message on the queue. Check the man page of msgrcv here.

Quote:
The msgflg argument asserts none, one or more (or-ing them) of the following flags:
IPC_NOWAIT For immediate return if no message of the requested type is on the queue. The system call fails with errno set to ENOMSG.
So when calling msgrcv, set the msgflg variable to IPC_NOWAIT.
# 4  
Old 01-03-2006
use thread

Hi, Create a thread to receive (msgrcv) the response.
Wait for certain time (letus say 5sec).
Send a reply (msgsnd) if and only if a flag is set to Success within this thread, after that much wait time.

Hav a gud time. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Forever -w option

I am trying to use the forever command. I can get it to work if I do not use the w option to watch for changes and cause an automatic restart on a change to the contents of the directory being watched. I would really like to use the watch option. Is this option fully implemented? here is an... (4 Replies)
Discussion started by: barrygordon
4 Replies

2. Programming

How can I tell when recv is finished with pending data?

I'm working with recv and I am having a heck of a lot of trouble ignoring excess data that I did not ask for. I was hoping someone could shine some light on the subject for me because I'm not getting anywhere fast. ---------- Post updated at 02:46 AM ---------- Previous update was at 12:31 AM... (2 Replies)
Discussion started by: Errigour
2 Replies

3. UNIX for Dummies Questions & Answers

pending signals

I was wondering about following. If I have set of 3 signals. And they are all blocked.Now at some point in the program the set is unblocked. Which signal will be delivered first.This is my set....SIGTSTP,SIGQUIT,SIGINT.When I added them in the set and unblock them I did it in following order... ... (1 Reply)
Discussion started by: joker40
1 Replies

4. UNIX for Dummies Questions & Answers

IPC Message Queue. msgrcv doesnt work..

Hi everybody, this is the situation. there is a programm XYZ which opens a message queue with the key 47110815 and waits for a SIGUSR1. After receiving this signal it sends a message with type 100 and a number (as ASCII) in the message-body. I have to write a prog which frist sends the... (1 Reply)
Discussion started by: daredevil82m
1 Replies

5. Programming

C Posix - msgsnd() msgrcv

Hey guys, Im doing message passing for the first time on a linux OS. Im new to C programming, so bear with me. I made two .c files : central.c and external.c I simply wanted to pass a message from the central process to the external process. BUT Whenever each process gets to the... (3 Replies)
Discussion started by: carl33p
3 Replies

6. IP Networking

valid_lft forever preferred_lft forever <-- what does this mean?

Just looking at my ethernet interface.. I see this response... what does this mean...? ipconfig... lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft... (0 Replies)
Discussion started by: jimmyc
0 Replies

7. AIX

msgrcv crash in AIX 5.3 SP6

Hi All, I have a piece of code like blow. It is working fine with AIX 5.3 SP3. When the same thing is getting executed in AIX 5. SP6 it is giving segmentation fault. If I put debug statements before and after, it works fine. rc = msgrcv(mqid, &msg, size, HIGH_PRIORITY_FIRST , 0) ... (0 Replies)
Discussion started by: sandhya_chp
0 Replies

8. UNIX for Dummies Questions & Answers

msgrcv : Invalid argument

Hi All, Please guide me how to get rid : msgrcv : Invalid argument. I am using message queues: msgsnd and msgrcv, I am able to send through msgsnd and receive through msgrcv, but at times i get the belo error. msgrcv : Invalid argument. (1 Reply)
Discussion started by: answers
1 Replies
Login or Register to Ask a Question