diff options
Diffstat (limited to 'ACE/ace/OS_NS_Thread.inl')
-rw-r--r-- | ACE/ace/OS_NS_Thread.inl | 32 |
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) { |