Getting the current thread ID without a syscall?
Ian Lepore
freebsd at damnhippie.dyndns.org
Tue Jan 15 22:33:56 UTC 2013
On Tue, 2013-01-15 at 14:29 -0800, Alfred Perlstein wrote:
> On 1/15/13 1:43 PM, Konstantin Belousov wrote:
> > On Tue, Jan 15, 2013 at 04:35:14PM -0500, Trent Nelson wrote:
> >>
> >> Luckily it's for an open source project (Python), so recompilation
> >> isn't a big deal. (I also check the intrinsic result versus the
> >> syscall result during startup to verify the same ID is returned,
> >> falling back to the syscall by default.)
> > For you, may be. For your users, it definitely will be a problem.
> > And worse, the problem will be blamed on the operating system and not
> > to the broken application.
> >
> Anything we can do to avoid this would be best.
>
> The reason is that we are still dealing with an "optimization" that perl
> did, it reached inside of the opaque struct FILE to "do nasty things".
> Now it is very difficult for us to fix "struct FILE".
>
> We are still paying for this years later.
>
> Any way we can make this a supported interface?
>
> -Alfred
Re-reading the original question, I've got to ask why pthread_self()
isn't the right answer? The requirement wasn't "I need to know what the
OS calls me" it was "I need a unique ID per thread within a process."
-- Ian
More information about the freebsd-hackers
mailing list