Allan Smith <aes@connecttech.com> wrote:
Thanks guys for the tips, pidin did not hang, but showed sin was blocked on
my driver.
I had missed this before but sin is sending a message to my child thread. I
am not sure what this message is?
It is probably some sort of fd-query type message. At a guess, you child
thread has a channel of its own, and at least one side-channel connection
to that channel. I think that sin used to do a fd-query for all connections,
but may have been fixed to not do the fd-query on side-channel connections.
(Which would be the difference between 6.2.1 and 6.3.0 behaviour.)
Anytime you have a channel on which you receive messages, it is a good
idea to do something like:
MsgError(rcvid, ENOSYS );
for any/all messages that you don’t recognise. This unblocks the client
with a failure, rather than leaving them blocked on you.
(If the client is SEND blocked on your child’s thread’s chid, rather than
REPLY blocked, that means you need to receive & error the message.)
-David
“David Gibbs” <> dagibbs@qnx.com> > wrote in message
news:d7frbm$o3o$> 1@inn.qnx.com> …
Allan Smith <> aes@connecttech.com> > wrote:
I have noticed a strange behaviour that I am unable to track down.
I have a resource manager we are developing that when I run and then run
“sin”. The “sin” command will hang with no messages and no output plus
no
messages (that I know of) going to my driver.
This occurs under QNX 6.21, yet under 6.3 it works fine.
Is anyone aware of what might cause sin to fail when run with a resource
manager?
I don’t know of anything, and I couldn’t find anything in our bug tracking
system that sounded anything like this.
So,
Any command line arguments to sin?
Does pidin hang the same way?
If pidin doesn’t hang, what state is sin in when this happens?
-David
David Gibbs
QNX Training Services
dagibbs@qnx.com
–
David Gibbs
QNX Training Services
dagibbs@qnx.com