Hey folks,

os::current_thread_id on Linux now maps to pthread_self.  The problem with
pthread_self is that it only makes sense in the context of the running
process.  When it is written out to the log (as it is in several places),
there really isn't a way (AFAICT) for the user to map it back to anything
useful.

As it happens, that value is mostly used to write to the log.  The places
where it doesn't do so don't seem to need to use pthread_self for any
particular reason.

Meanwhile, the SIGQUIT stack dump uses java_thread->osthread()->thread_id()
as the nid.  On Linux, that maps back to os::Linux::gettid(), whish is also
what gets exposed in /proc.  That makes it much easier to see what threads
might be doing the log write.

Would it be okay to change os::current_thread_id to point
to os::Linux::gettid()?  That way, it can be mapped back to the output of a
SIGQUIT dump.

The downside of gettid() is that it is only available on Linux>2.4.11, but
that dates from 2001.  If we really still want to support it, we could
check for that.

Thoughts?

Jeremy

Reply via email to