[#BloombergLP-bslmt-ThreadUtilImpl-04]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmt.adoc[bslmt]::xref:BloombergLP/bslmt/ThreadUtilImpl-0f.adoc[ThreadUtilImpl]&lt;xref:BloombergLP/bslmt/Platform/PosixThreads.adoc[Platform::PosixThreads]&gt;
:relfileprefix: ../../
:mrdocs:

This class provides a full specialization of `ThreadUtilImpl` for pthreads&period;

== Synopsis

Declared in `&lt;bslmt&lowbar;threadutilimpl&lowbar;pthread&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;&gt;
struct xref:BloombergLP/bslmt/ThreadUtilImpl-0f.adoc[ThreadUtilImpl]&lt;xref:BloombergLP/bslmt/Platform/PosixThreads.adoc[Platform::PosixThreads]&gt;;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/Handle.adoc[`Handle`] 
| Thread handle type&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/Id.adoc[`Id`] 
| Thread identifier type&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/Key.adoc[`Key`] 
| Thread&hyphen;specific storage key type&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/NativeHandle-08.adoc[`NativeHandle`] 
| Native thread handle type&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/areEqual.adoc[`areEqual`] 
| Return whether the two thread handles identify the same thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/areEqualId.adoc[`areEqualId`] 
| Return whether the two thread identifiers refer to the same thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/create-09.adoc[`create`] 
| `create` overloads
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/createKey.adoc[`createKey`] 
| Create a process&hyphen;wide key for thread&hyphen;local storage&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/deleteKey.adoc[`deleteKey`] 
| Delete the specified process&hyphen;wide thread&hyphen;local key&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/detach.adoc[`detach`] 
| Detach the thread so its resources are reclaimed on termination&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/exit.adoc[`exit`] 
| Exit the current thread and return the specified status&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/getMaxSchedulingPriority.adoc[`getMaxSchedulingPriority`] 
| Return the maximum available scheduling priority for the policy&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/getMinSchedulingPriority.adoc[`getMinSchedulingPriority`] 
| Return the minimum available scheduling priority for the policy&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/getSpecific.adoc[`getSpecific`] 
| Return the calling thread&apos;s value associated with the specified key&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/getThreadName.adoc[`getThreadName`] 
| Load the name of the current thread into the specified string&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/handleToId.adoc[`handleToId`] 
| Return the unique identifier for the thread with the specified handle&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/hardwareConcurrency.adoc[`hardwareConcurrency`] 
| Return the number of concurrent threads supported by the implementation on success, and 0 otherwise&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/idAsInt.adoc[`idAsInt`] 
| Return a unique integral identifier for the specified thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/idAsUint64.adoc[`idAsUint64`] 
| Return a unique 64&hyphen;bit integral identifier for the specified thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/join.adoc[`join`] 
| Wait for the specified thread to terminate and reclaim its resources&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/microSleep.adoc[`microSleep`] 
| Suspend the current thread for at least the specified duration&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/nativeHandle-0a.adoc[`nativeHandle`] 
| Return the platform&hyphen;specific native handle for the specified thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/self.adoc[`self`] 
| Return an opaque handle that refers to the current thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/selfId.adoc[`selfId`] 
| Return a unique identifier for the current thread in this process&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/selfIdAsInt.adoc[`selfIdAsInt`] 
| Return a unique integral identifier for the current thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/selfIdAsUint64.adoc[`selfIdAsUint64`] 
| Return a unique 64&hyphen;bit integral identifier for the current thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/selfKernelIdAsUint64.adoc[`selfKernelIdAsUint64`] 
| Return a unique 64&hyphen;bit identifier for the current kernel thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/setSpecific.adoc[`setSpecific`] 
| Associate the specified value with the key for the calling thread&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/setThreadName.adoc[`setThreadName`] 
| Set the name of the current thread to the specified name&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/sleep.adoc[`sleep`] 
| Suspend the current thread for at least the specified relative time&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/sleepUntil-09.adoc[`sleepUntil`] 
| Suspend the current thread until the specified absolute time&period;
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/yield.adoc[`yield`] 
| Yield the processor so another ready thread can run&period;
|===


== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmt/ThreadUtilImpl-04/INVALID_HANDLE.adoc[`INVALID&lowbar;HANDLE`] 
| Invalid thread handle value&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
