Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
Developer Support
QNX Documentation Library
QNX Developer Support

QNX Developer Support

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

[Previous] [Contents] [Index] [Next]

ThreadDetach(), ThreadDetach_r()

Detach a thread from a process

Synopsis:

#include <sys/neutrino.h>

int ThreadDetach( int tid );

int ThreadDetach_r( int tid );

Arguments:

tid
The ID of the thread that you want to detach, as returned by ThreadCreate(), or 0 to detach the current thread.

Library:

libc

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

Description:

These kernel calls detach the thread specified by tid. If tid is zero, the calling thread is used. Once detached, attempts to call ThreadJoin() on tid fail. When a detached thread terminates, its termination status is discarded and all its resources are released.

The ThreadDetach() and ThreadDetach_r() functions are identical, except in the way they indicate errors. See the Returns section for details.


Note: Instead of using these kernel calls directly, consider calling pthread_detach().

Blocking states

These calls don't block.

Returns:

The only difference between these functions is the way they indicate errors:

ThreadDetach()
If an error occurs, the function returns -1 and sets errno. Any other value returned indicates success.
ThreadDetach_r()
Returns EOK on success. This function does NOT set errno. If an error occurs, the function can return any value listed in the Errors section.

Errors:

EINVAL
The thread is already detached.
ESRCH
The thread indicated by tid doesn't exist.

Classification:

QNX Neutrino

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

See also:

pthread_detach(), ThreadCreate(), ThreadJoin()


[Previous] [Contents] [Index] [Next]