RECV blocked process won't continue with SIGINT

I have one program which stops responding sometimes, and sin says it’s
RECV blocked. I put there this:

pid = Receive( 0, &msg, sizeof(msg) );

if(pid == -1) {
dump_status(0);
continue;
}

But nothing happens when process is shot with SIGINT (or
SIGALRM,SIGUSR, SIG…)

SIGTERM ends program, but how to get it continue, not kill it?
Manual page of Recieve says it would be interrupted by signal and
return -1, but this seems not to be case?

In same loop, this prints out everything fine:

if(!(dump_counter++%0x10000)) dump_status(0);


M. Tavasti / tavastixx@iki.fi / +358-40-5078254
Poista sähköpostiosoitteesta molemmat x-kirjaimet
Remove x-letters from my e-mail address

use select() to detect if there is someting to read, then call receive,
otherwise, skip receive,

M. Tavasti <tavastixx@iki.fi.invalid> wrote in message
news:m2n0y5772s.fsf@akvavitix.vuovasti.com

I have one program which stops responding sometimes, and sin says it’s
RECV blocked. I put there this:

pid = Receive( 0, &msg, sizeof(msg) );

if(pid == -1) {
dump_status(0);
continue;
}

But nothing happens when process is shot with SIGINT (or
SIGALRM,SIGUSR, SIG…)

SIGTERM ends program, but how to get it continue, not kill it?
Manual page of Recieve says it would be interrupted by signal and
return -1, but this seems not to be case?

In same loop, this prints out everything fine:

if(!(dump_counter++%0x10000)) dump_status(0);


M. Tavasti / > tavastixx@iki.fi > / +358-40-5078254
Poista sähköpostiosoitteesta molemmat x-kirjaimet
Remove x-letters from my e-mail address

“M. Tavasti” <tavastixx@iki.fi.invalid> wrote in message
news:m2n0y5772s.fsf@akvavitix.vuovasti.com

I have one program which stops responding sometimes, and sin says it’s
RECV blocked. I put there this:

pid = Receive( 0, &msg, sizeof(msg) );

if(pid == -1) {
dump_status(0);
continue;
}

But nothing happens when process is shot with SIGINT (or
SIGALRM,SIGUSR, SIG…)

Strange I just did a small test and it works for me?

SIGTERM ends program, but how to get it continue, not kill it?

Change the default handler, or set it to IGNORE. Check signal()
documentation.,


Manual page of Recieve says it would be interrupted by signal and
return -1, but this seems not to be case?

In same loop, this prints out everything fine:

if(!(dump_counter++%0x10000)) dump_status(0);


M. Tavasti / > tavastixx@iki.fi > / +358-40-5078254
Poista sähköpostiosoitteesta molemmat x-kirjaimet
Remove x-letters from my e-mail address