xQueuePeek() inside an ISR

If I use a block time of zero is it safe to use xQueuePeek() inside an ISR? Thanks, Paul.

xQueuePeek() inside an ISR

You can’t use the existing peek function from an ISR, but could add something like the following (not actually tested!)
signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle pxQueue, void * const pvBuffer )
{
signed portBASE_TYPE xReturn;
unsigned portBASE_TYPE uxSavedInterruptStatus;
signed char *pcOriginalReadPosition;
    uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
    {
        /* We cannot block from an ISR, so check there is data available. */
        if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )
        {
            /* Remember the read position in case we are just peeking. */
            pcOriginalReadPosition = pxQueue->pcReadFrom;
            prvCopyDataFromQueue( pxQueue, pvBuffer );

            /* The data is not being removed, so reset the read pointer to its
            original position. */
            pxQueue->pcReadFrom = pcOriginalReadPosition;
            xReturn = pdPASS;
        }
        else
        {
            xReturn = pdFAIL;
        }
    }
    portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
    return xReturn;
}
Regards.

xQueuePeek() inside an ISR

Okay, thanks. Paul.