summaryrefslogtreecommitdiff
path: root/ACE/ace/OS_NS_Thread.inl
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/OS_NS_Thread.inl')
-rw-r--r--ACE/ace/OS_NS_Thread.inl32
1 files changed, 32 insertions, 0 deletions
diff --git a/ACE/ace/OS_NS_Thread.inl b/ACE/ace/OS_NS_Thread.inl
index 054f9187a3d..5ee6b331b15 100644
--- a/ACE/ace/OS_NS_Thread.inl
+++ b/ACE/ace/OS_NS_Thread.inl
@@ -3079,6 +3079,38 @@ ACE_OS::thr_min_stack (void)
#endif /* ACE_HAS_THREADS */
}
+ACE_INLINE ssize_t
+ACE_OS::thr_id (char buffer[], size_t buffer_length)
+{
+#if defined (ACE_WIN32)
+#if defined (ACE_HAS_SNPRINTF)
+ return ACE_OS::snprintf (buffer,
+ buffer_length,
+ "u",
+ static_cast <unsigned> (ACE_Thread::self ()));
+#else
+ ACE_UNUSED_ARG (buffer_length);
+ return ACE_OS::sprintf (buffer,
+ "u",
+ static_cast <unsigned> (ACE_Thread::self ()));
+#endif /* ACE_HAS_SNPRINTF */
+#else
+ ACE_hthread_t t_id;
+ ACE_OS::thr_self (t_id);
+#if defined (ACE_HAS_SNPRINTF)
+ return ACE_OS::snprintf (buffer,
+ buffer_length,
+ "%lu",
+ (unsigned long) t_id);
+#else
+ ACE_UNUSED_ARG (buffer_length);
+ return ACE_OS::sprintf (buffer,
+ "%lu",
+ (unsigned long) t_id);
+#endif /* ACE_HAS_SNPRINTF */
+#endif /* WIN32 */
+}
+
ACE_INLINE ACE_thread_t
ACE_OS::thr_self (void)
{