<div dir="ltr">On Fri, May 10, 2013 at 5:30 PM, Mike Sartain <span dir="ltr"><<a href="mailto:mikesart@valvesoftware.com" target="_blank">mikesart@valvesoftware.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Fri, May 10, 2013 at 1:41 PM, Kopec, Matt <<a href="mailto:matt.kopec@intel.com">matt.kopec@intel.com</a>> wrote:<br>


<br></div><div class="im">
> Some comments about the patch...<br>
><br>
> > +#elif defined (__linux__)<br>
> > +    void *fn = dlsym (RTLD_DEFAULT, "pthread_setname_np");<br>
> > +    if (fn)<br>
> > +    {<br>
><br>
> I believe this pthread function can be added by including pthread.h for Linux. That way you don't need dlsym and can just re-use most of the code that is already there for apple.<br>
<br>
</div>pthread_setname_np was added in glibc v2.12, so anything running less than that would run into issues if we called it directly. As an example on the Ubuntu side, I believe 10.04 LTS shipped with 2.11.1. What are your thoughts / requirements for minspecs like this?<br>

</blockquote><div><br></div><div>...</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">> > +        const char *lastdot = ::strrchr( thread_name, '.' );<br>
> > +<br>
> > +        if (lastdot && lastdot != thread_name)<br>
> > +            thread_name = lastdot + 1;<br>
> > +        ::strncpy (namebuf, thread_name, sizeof(namebuf));<br>
> > +        namebuf[ sizeof(namebuf) - 1 ] = 0;<br>
> > +<br>
> > +        int namebuflen = strlen(namebuf);<br>
><br>
> It would have been nice to use std::string and its' facilities. It would make this easier to write and understand but what you have is fine.<br>
</div></blockquote></div><br></div><div class="gmail_extra" style>I just wrote this up with std::string, but since Host::ThreadCreated() takes a regular C string, converting that to a std::string does a memory allocation. I personally would prefer the above code to it being more optimal, but that may also just be me not finding it more difficult to understand than the std::string.</div>

<div class="gmail_extra" style><br></div><div class="gmail_extra" style>I'll code to whatever the project guidelines are though, so when you get a chance, let me know what folks on this project prefer and how to proceed with the glibc v2.12 issue and I'll resubmit all this.</div>

<div class="gmail_extra" style><br></div><div class="gmail_extra" style>Thanks much.</div><div class="gmail_extra" style> -Mike</div></div>