SAM4E-EK NSH: Increase the number of preallocated WDOGS to 32 to avoid timeout failures

This commit is contained in:
Gregory Nutt 2014-03-21 11:22:50 -06:00
parent 06e60bab2b
commit 9f2ee0966a
3 changed files with 9 additions and 7 deletions

View file

@ -389,7 +389,7 @@ CONFIG_NAME_MAX=32
CONFIG_PREALLOC_MQ_MSGS=4 CONFIG_PREALLOC_MQ_MSGS=4
CONFIG_MQ_MAXMSGSIZE=32 CONFIG_MQ_MAXMSGSIZE=32
CONFIG_MAX_WDOGPARMS=2 CONFIG_MAX_WDOGPARMS=2
CONFIG_PREALLOC_WDOGS=4 CONFIG_PREALLOC_WDOGS=32
CONFIG_PREALLOC_TIMERS=4 CONFIG_PREALLOC_TIMERS=4
# #

View file

@ -172,11 +172,12 @@ int nanosleep(FAR const struct timespec *rqtp, FAR struct timespec *rmtp)
if (errval == EAGAIN) if (errval == EAGAIN)
{ {
/* The timeout "error" is the normal, successful result */ /* The timeout "error" is the normal, successful result */
irqrestore(flags); irqrestore(flags);
return OK; return OK;
} }
/* If we get there, the wait has fail because we were awakened by a /* If we get there, the wait has failed because we were awakened by a
* signal. Return the amount of "unwaited" time if rmtp is non-NULL. * signal. Return the amount of "unwaited" time if rmtp is non-NULL.
*/ */

View file

@ -150,7 +150,7 @@ static void sig_timeout(int argc, uint32_t itcb)
* SI_USER - Signal sent from kill, raise, or abort * SI_USER - Signal sent from kill, raise, or abort
* SI_QUEUE - Signal sent from sigqueue * SI_QUEUE - Signal sent from sigqueue
* SI_TIMER - Signal is result of timer expiration * SI_TIMER - Signal is result of timer expiration
* SI_ASYNCIO - Signal is the result of asynch IO completion * SI_ASYNCIO - Signal is the result of asynch IO completion
* SI_MESGQ - Signal generated by arrival of a message on an * SI_MESGQ - Signal generated by arrival of a message on an
* empty message queue. * empty message queue.
* *
@ -262,7 +262,7 @@ int sigtimedwait(FAR const sigset_t *set, FAR struct siginfo *info,
rtcb->waitdog = wd_create(); rtcb->waitdog = wd_create();
if (rtcb->waitdog) if (rtcb->waitdog)
{ {
/* This little of nonsense is necessary for some /* This little bit of nonsense is necessary for some
* processors where sizeof(pointer) < sizeof(uint32_t). * processors where sizeof(pointer) < sizeof(uint32_t).
* see wdog.h. * see wdog.h.
*/ */
@ -272,7 +272,8 @@ int sigtimedwait(FAR const sigset_t *set, FAR struct siginfo *info,
/* Start the watchdog */ /* Start the watchdog */
wd_start(rtcb->waitdog, waitticks, (wdentry_t)sig_timeout, 1, wdparm.dwarg); wd_start(rtcb->waitdog, waitticks, (wdentry_t)sig_timeout, 1,
wdparm.dwarg);
/* Now wait for either the signal or the watchdog */ /* Now wait for either the signal or the watchdog */
@ -311,7 +312,7 @@ int sigtimedwait(FAR const sigset_t *set, FAR struct siginfo *info,
/* We were awakened by a signal... but is it one of the signals that /* We were awakened by a signal... but is it one of the signals that
* we were waiting for? * we were waiting for?
*/ */
if (sigismember(set, rtcb->sigunbinfo.si_signo)) if (sigismember(set, rtcb->sigunbinfo.si_signo))
{ {
/* Yes.. the return value is the number of the signal that /* Yes.. the return value is the number of the signal that
@ -338,7 +339,7 @@ int sigtimedwait(FAR const sigset_t *set, FAR struct siginfo *info,
set_errno(EAGAIN); set_errno(EAGAIN);
ret = ERROR; ret = ERROR;
} }
/* Return the signal info to the caller if so requested */ /* Return the signal info to the caller if so requested */
if (info) if (info)