Trouble with Socket and async Signaling

Hello,

I have a program where the socket sends me a signal if there is new data in
the buffer.
Standard code.
On RTP 6.1 it worked without problems.
Now I recompiled to RTP 6.2 and guess what happen. It does not behave the
same way.
Now I get only the signal if im also read blocked on the socket. But this is
not the idea of
an async signal.

Normaly I catch the signal with an function defined with
signal(SIGIO,SockIONotifiy).
In there I generate a puls to wake up my MsgReceive() blocked program.
But now if I’m not read blocked on the socket, NO SIGNAL ARRIVES.

I hate this type of errors.

Patrik Cipriano

I’ll have to look at the SIGIO issue, but a workaround
might be to use ionotify() and have the stack raise the
pulse on you directly.

-seanb

Cipriano Patrik <pciprian@bluewin.ch> wrote:

Hello,

I have a program where the socket sends me a signal if there is new data in
the buffer.
Standard code.
On RTP 6.1 it worked without problems.
Now I recompiled to RTP 6.2 and guess what happen. It does not behave the
same way.
Now I get only the signal if im also read blocked on the socket. But this is
not the idea of
an async signal.

Normaly I catch the signal with an function defined with
signal(SIGIO,SockIONotifiy).
In there I generate a puls to wake up my MsgReceive() blocked program.
But now if I’m not read blocked on the socket, NO SIGNAL ARRIVES.

I hate this type of errors.

Patrik Cipriano

I haven’t been able to reproduse this. Do you have
a small test case?

-seanb


Sean Boudreau <seanb@node25.ott.qnx.com> wrote:

I’ll have to look at the SIGIO issue, but a workaround
might be to use ionotify() and have the stack raise the
pulse on you directly.

-seanb

Cipriano Patrik <> pciprian@bluewin.ch> > wrote:
Hello,

I have a program where the socket sends me a signal if there is new data in
the buffer.
Standard code.
On RTP 6.1 it worked without problems.
Now I recompiled to RTP 6.2 and guess what happen. It does not behave the
same way.
Now I get only the signal if im also read blocked on the socket. But this is
not the idea of
an async signal.

Normaly I catch the signal with an function defined with
signal(SIGIO,SockIONotifiy).
In there I generate a puls to wake up my MsgReceive() blocked program.
But now if I’m not read blocked on the socket, NO SIGNAL ARRIVES.

I hate this type of errors.

Patrik Cipriano