Merge branch 'master' into 32l4_qepsc

This commit is contained in:
Sebastien Lorquet 2016-11-09 19:55:10 +01:00
commit 90f1762012
2 changed files with 14 additions and 14 deletions

View File

@ -84,13 +84,9 @@ int sem_trywait(FAR sem_t *sem)
/* This API should not be called from interrupt handlers */
DEBUGASSERT(up_interrupt_context() == false);
DEBUGASSERT(sem != NULL && up_interrupt_context() == false);
/* Assume any errors reported are due to invalid arguments. */
set_errno(EINVAL);
if (sem)
if (sem != NULL)
{
/* The following operations must be performed with interrupts disabled
* because sem_post() may be called from an interrupt handler.
@ -98,12 +94,6 @@ int sem_trywait(FAR sem_t *sem)
flags = enter_critical_section();
/* Any further errors could only occurr because the semaphore is not
* available.
*/
set_errno(EAGAIN);
/* If the semaphore is available, give it to the requesting task */
if (sem->semcount > 0)
@ -114,11 +104,21 @@ int sem_trywait(FAR sem_t *sem)
rtcb->waitsem = NULL;
ret = OK;
}
else
{
/* Semaphore is not available */
set_errno(EAGAIN);
}
/* Interrupts may now be enabled. */
leave_critical_section(flags);
}
else
{
set_errno(EINVAL);
}
return ret;
}

View File

@ -84,11 +84,11 @@ int sem_wait(FAR sem_t *sem)
/* This API should not be called from interrupt handlers */
DEBUGASSERT(up_interrupt_context() == false);
DEBUGASSERT(sem != NULL && up_interrupt_context() == false);
/* Make sure we were supplied with a valid semaphore. */
if (sem)
if (sem != NULL)
{
/* The following operations must be performed with interrupts
* disabled because sem_post() may be called from an interrupt