ulTaskNotifyTake from ISR

Hi, Is it possible to use ulTaskNotifyTake() with a zero wait time from an ISR? I want to use it as a binary semaphore to get hold of a storage buffer. Regards, Remco Poelstra

ulTaskNotifyTake from ISR

It might [unofficially] be possible, but looking at the code I would say it would depend on which port you are using….which are you using? Regards.

ulTaskNotifyTake from ISR

Hi Remco, I don’t know if it is safe to call ulTaskNotifyTake() from an interrupt, but: normally the xxxTake would be called from within a task, and xxxGive from within an interrupt or a task. Now you get an interrupt and you want to see if “a resource” is available? Isn’t a simple volatile flag enough for this? ~~~~~ #define FLAGBUSY 1 volatile uint32t flags;
void isr( void )
{
    /* Here 'flags' is only read, not written. */
    if( ( flags & FLAG_BUSY ) == 0 )
    {
        /* Buffer is available */
    }
}

void update_buffer ()
{
    flags |= FLAG_BUSY;
    /* Buffer may be accessed */
    flags &= ~( FLAG_BUSY );
}
~~~~~ Regards.