InterruptDetach(), InterruptDetach_r()
Detach an interrupt thread by ID
Synopsis:
#include <sys/neutrino.h>
int InterruptDetach( int id );
int InterruptDetach_r( int id );
Arguments:
- id
- An interrupt ID, as returned by InterruptAttachThread(), InterruptAttachEvent(), or InterruptAttachEventPriority().
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The InterruptDetach() and InterruptDetach_r() kernel calls detach the interrupt thread specified by the id argument. These functions are identical except in the way they indicate errors. See the Returns section for details.
After a calling thread becomes an IST (the thread that called InterruptAttachThread()), the IST can call InterruptDetach() to detach itself.
When a thread calls InterruptDetach() to detach an id returned by InterruptAttachEvent*(), the implicit IST kills itself. This action results in a detach from the interrupt.
Blocking states
These calls don't block.
Returns:
The only difference between these functions is the way they indicate errors:
- InterruptDetach()
- If an error occurs, -1 is returned and errno is set. Any other value returned indicates success.
- InterruptDetach_r()
- EOK is returned on success. This function does NOT set errno. If an error occurs, any value in the Errors section may be returned.
Errors:
- EINVAL
- The value of id doesn't exist.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |