Relay Documentation

The helpviewer page for Relay says that it doesn’t block.

But if the target is not RECV BLOCKED doesn’t it have to block?

Oops! I see that ESRCH will be returned if the target isn’t blocked.

Why?

“Bill Caroselli (Q-TPS)” <QTPS@earthlink.net> wrote:

The helpviewer page for Relay says that it doesn’t block.

Yup.

But if the target is not RECV BLOCKED doesn’t it have to block?

Nope.

Why should it? All it does is change who the SENDER is blocked on.
The Sender would now become either SEND blocked on the new pid (if
the target is not RECEIVE blocked) or REPLY blocked on the new pid
(if the target is RECEIVE blocked).

Oops! I see that ESRCH will be returned if the target isn’t blocked.

That is probably not quite right – it should return ESRCH if either
pid no longer exists of if the source is not REPLY blocked. The state
of the target, as long as the target exists, should be irrelevant.

BUT… we don’t like Relay(), and we think you shouldn’t use it.
Ever. (Kind of like we think qnx_proxy_attach( someone_else ) is
also a bad thing, and that you shouldn’t do that either.)

-David

QNX Training Services
http://www.qnx.com/support/training/
Please followup in this newsgroup if you have further questions.