Robert D'Attilio(deleted)
|
dispatch_block() in resource manager reporting unexpected errno messages
|
Robert D'Attilio(deleted)
02/01/2010 2:26 PM
post46338
|
dispatch_block() in resource manager reporting unexpected errno messages
Hi:
I running QNX632 on a ppc405ep processor. I am puzzled by the following errno messages I periodically see sprinkled in
my slogs that correspond to my resource manager from the call to dispatch_block in my main loop:
ESRCH 3 /* No such process
EAGAIN 11 /* Resource unavailable, try again
ENOSYS 89 /* Unknown system call
From my understanding of the dispatch_block() call is it just waits on a message queue for a message sent to your
resource manager. So I'm a bit confused by the context of the above errno messages i.e. no such process - the RM process
is still there, it hasn't died.
Here is basically the code in question. Note that a timer is also to used to force the dispatch_block to timeout - this
main loop is used to process incoming messages to the RM and also do some other work that is periodic and independent of
the messages (Not how I would have done it but that's the code I inherited).
// reset errno
int err = EOK;
int rc = TimerTimeout_r(CLOCK_MONOTONIC,_NTO_TIMEOUT_RECEIVE,
&event,&mtimeout,&time_left ); //*/
new_ctp = dispatch_block(ctp);
err = errno;
if (err!=ETIMEDOUT && err!=EOK)
{
slogf(SLOG_OPCODE_MRA_GEN, _SLOG_ERROR,
"DPR: dispatch_block() error %s! on %s %s 0x%x",strerror(err),
dpr_path, dpr_cdr_path, dpr_cdr_devaddr[0]);
}
The documentation for dispatch_block() does not mention any of the above errno messages as possibly being returned. Also
TimerTimeout_r() shouldn't set errno either. Any idea why dispatch_block() would be returning these errors?
Thanks
robert
|
|
|