InterruptUnlock()

Release a critical section in an interrupt handler

Synopsis:

#include <sys/neutrino.h>

void InterruptUnlock( intrspin_t* spinlock );

Arguments:

spinlock
The spinlock (a variable shared between the interrupt handler and a thread) used in a call to InterruptLock() to lock the handler.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The InterruptUnlock() function releases a critical section by unlocking the specified spinlock, reenabling interrupts. You can call this function from a thread or from an interrupt handler.

Before calling this function:

If you don't do these things, the thread might SIGSEGV when it calls InterruptUnlock().

Note: This function doesn't support nesting. If a specific thread calls InterruptLock() multiple times with different spinlocks and then calls InterruptUnlock() the same number of times and in reverse order with the locks, the first InterruptUnlock() call re-enables interrupts and the critical section is no longer protected.

Classification:

QNX Neutrino

Safety:  
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes