MsgSendPulse_r() returns ENXIO

MsgSendPulse_r() is returning ENXIO to me, which isn’t listed on the
potential return values:
http://www.qnx.com/developer/docs/momentics_nc_docs/neutrino/lib_ref/m/msgse
ndpulse.html
What does ENXIO indicate?

Using QNX 6.2 NC.

Thanks,
Shaun

Shaun Jackman <sjackman@nospam.vortek.com> wrote:

MsgSendPulse_r() is returning ENXIO to me, which isn’t listed on the
potential return values:
http://www.qnx.com/developer/docs/momentics_nc_docs/neutrino/lib_ref/m/msgse
ndpulse.html
What does ENXIO indicate?

From /usr/include/errno.h “No such device or address”. I think it
usually represents a hardware type error, for instance if you tried
to write to a removable disk medium while it was removed, I might
expect an ENXIO error.

I wouldn’t have expected ENXIO from MsgSendPulse_r.

What are you passing as the coid, and what is that coid attached to?

-David

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

I am passing 1073741861 (for example) as the coid. I checked and it matches
the one ConnectAttach() returned.
I found the source of my problem though. The server was crashing due to a
SIGSEGV, which wasn’t apparent because the server was daemon()ized. I
probably should have checked that first. Still, I wouldn’t have expected an
ENXIO. An EBADF would seem more reasonable.

Cheers,
Shaun

From /usr/include/errno.h “No such device or address”. I think it
usually represents a hardware type error, for instance if you tried
to write to a removable disk medium while it was removed, I might
expect an ENXIO error.

I wouldn’t have expected ENXIO from MsgSendPulse_r.

What are you passing as the coid, and what is that coid attached to?

MsgSendPulse_r() is returning ENXIO to me, which isn’t listed on the
potential return values:

http://www.qnx.com/developer/docs/momentics_nc_docs/neutrino/lib_ref/m/msgse
ndpulse.html
What does ENXIO indicate?

Shaun Jackman <sjackman@nospam.vortek.com> wrote:

I am passing 1073741861 (for example) as the coid. I checked and it matches
the one ConnectAttach() returned.
I found the source of my problem though. The server was crashing due to a
SIGSEGV, which wasn’t apparent because the server was daemon()ized. I
probably should have checked that first. Still, I wouldn’t have expected an
ENXIO. An EBADF would seem more reasonable.

I would have so expected myself. So, I wrote a little test where I
send a pulse to a server, that happily receives it a few times, then
hit the server with ctrl-C, and for me MsgSendPulse_r() returned 9,
that is, EBADF. Also, tested it forcing a SIGSEGV on my server –
same thing EBADF. Even tried it with a server that called
procmgr_daemon(), still EBADF.

I don’t know how/why you’re getting ENXIO, but I don’t think that
should be happening.

(Useful tip: if you print your coids out in hex, they become a bit
more readable.)

-David

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