receiving a NEUTRINO unblock pulse...

Hello,

after receiving a Neutrino UNBLOCK-PULSE (using _NTO_CHF_UNBLOCK for the
server channel and forcing a timeout using TimerTimeout() in the client’s
send()), I want to discern, WHICH client unblocked. Normally, I should be
able to look at the return value from the pulse, but the documentation I
have is too short about this issue.
Can somebody tell me what (RCVID of the client, COID of the client or PID of
the client) I receive with the pulse and in which form I receive it (how to
extract the necessary information for a reply)?

Thanks

Nnamdi

Nnamdi Kohn <nnamdi.kohn@tu-bs.de> wrote:

Hello,

after receiving a Neutrino UNBLOCK-PULSE (using _NTO_CHF_UNBLOCK for the
server channel and forcing a timeout using TimerTimeout() in the client’s
send()), I want to discern, WHICH client unblocked. Normally, I should be
able to look at the return value from the pulse, but the documentation I
have is too short about this issue.
Can somebody tell me what (RCVID of the client, COID of the client or PID of
the client) I receive with the pulse and in which form I receive it (how to
extract the necessary information for a reply)?

The value field of the pulse is the rcvid of the client.

So, if you have something like:

union msgs {
struct _pulse pulse;

} msg;

rcvid = MsgReceive( chid, &msg, sizeof (msg), NULL );
if (rcvid == 0 )
{
if (msg.pulse.code == PULSE_CODE_UNBLOCK )
{

MsgError( msg.pulse.value.sival_int, EINTR );
}
}

-David

Thanks

Nnamdi


David Gibbs
QNX Training Services
dagibbs@qnx.com

Thanks.

What is the scoid field for? It seems to be the rcvid + 0x40000000.

Nnamdi

“David Gibbs” <dagibbs@qnx.com> schrieb im Newsbeitrag
news:ctp0no$ntj$1@inn.qnx.com

Nnamdi Kohn <> nnamdi.kohn@tu-bs.de> > wrote:
Hello,

after receiving a Neutrino UNBLOCK-PULSE (using _NTO_CHF_UNBLOCK for the
server channel and forcing a timeout using TimerTimeout() in the
client’s
send()), I want to discern, WHICH client unblocked. Normally, I should
be
able to look at the return value from the pulse, but the documentation I
have is too short about this issue.
Can somebody tell me what (RCVID of the client, COID of the client or
PID of
the client) I receive with the pulse and in which form I receive it (how
to
extract the necessary information for a reply)?

The value field of the pulse is the rcvid of the client.

So, if you have something like:

union msgs {
struct _pulse pulse;

} msg;

rcvid = MsgReceive( chid, &msg, sizeof (msg), NULL );
if (rcvid == 0 )
{
if (msg.pulse.code == PULSE_CODE_UNBLOCK )
{

MsgError( msg.pulse.value.sival_int, EINTR );
}
}

-David

Thanks

Nnamdi


\

David Gibbs
QNX Training Services
dagibbs@qnx.com

Nnamdi Kohn <nnamdi.kohn@tu-bs.de> wrote:

Thanks.

What is the scoid field for? It seems to be the rcvid + 0x40000000.

scoid is a unique client process identifier. It stands for “Sever COnnection
IDentifier”.

Anytime you get a message, you can ask for a message info structure
to be filled in, as the last parameter.

The info.scoid will be the value.

When you get a disconnect pulse, telling you that all connections from
a client have gone away, the pulse.scoid will be the scoid of the
client.

rcvids and scoids are related, in that both are used to find/identify
a client – rcvid for the reply, or delivering an event, or identifying
a blocked client, scoids for client disappearance, or per-client
resources. rcvids also will include thread information, all threads in
the same client process will share the same scoid, but they will generate
different rcvids. (Cause the reply has to go to the correct MsgSend.)

-David

Nnamdi

“David Gibbs” <> dagibbs@qnx.com> > schrieb im Newsbeitrag
news:ctp0no$ntj$> 1@inn.qnx.com> …
Nnamdi Kohn <> nnamdi.kohn@tu-bs.de> > wrote:
Hello,

after receiving a Neutrino UNBLOCK-PULSE (using _NTO_CHF_UNBLOCK for the
server channel and forcing a timeout using TimerTimeout() in the
client’s
send()), I want to discern, WHICH client unblocked. Normally, I should
be
able to look at the return value from the pulse, but the documentation I
have is too short about this issue.
Can somebody tell me what (RCVID of the client, COID of the client or
PID of
the client) I receive with the pulse and in which form I receive it (how
to
extract the necessary information for a reply)?

The value field of the pulse is the rcvid of the client.

So, if you have something like:

union msgs {
struct _pulse pulse;

} msg;

rcvid = MsgReceive( chid, &msg, sizeof (msg), NULL );
if (rcvid == 0 )
{
if (msg.pulse.code == PULSE_CODE_UNBLOCK )
{

MsgError( msg.pulse.value.sival_int, EINTR );
}
}

-David

Thanks

Nnamdi


\

David Gibbs
QNX Training Services
dagibbs@qnx.com


David Gibbs
QNX Training Services
dagibbs@qnx.com