mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "J.A. Magallon" <jamagallon@able.es>
To: rvk@prodmail.net
Cc: Ian Campbell <ijc@hellion.org.uk>,
	Arjan van de Ven <arjan@infradead.org>,
	Robert Hancock <hancockr@shaw.ca>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: Thread_Id
Date: Thu, 14 Jul 2005 23:02:24 +0000	[thread overview]
Message-ID: <1121382144l.16874l.0l@werewolf.able.es> (raw)
In-Reply-To: <42D64B83.4000605@prodmail.net> (from rvk@prodmail.net on Thu Jul 14 13:24:51 2005)


On 07.14, RVK wrote:
> Ian Campbell wrote:
> 
> >On Thu, 2005-07-14 at 16:32 +0530, RVK wrote:
> >  
> >
> >>Ian Campbell wrote:
> >>    
> >>
> >>>What Arjan is saying is that pthread_t is a cookie -- this means that
> >>>you cannot interpret it in any way, it is just a "thing" which you can
> >>>pass back to the API, that pthread_t happens to be typedef'd to unsigned
> >>>long int is irrelevant.
> >>>      
> >>>
> >>Do you want to say for both 2.6.x and 2.4.x I should interpret that way ?
> >>    
> >>
> >
> >As I understand it, yes, you should never try and assign any meaning to
> >the values. The fact that you may have been able to find some apparent
> >meaning under 2.4 is just a coincidence.
> >
> >  
> >
> Iam sorry I don't agree on this. This confusion have created only becoz 
> of the different behavior of pthread_self() on 2.4.18 and 2.6.x kernels. 
> And Iam looking for clarifying my doubt. I can't digest this at all.
> 

It is simple: none ever never told you that a pthread_t has nothing to do
with a pid. pthreads is a standard and portable implementation that
guarantees you can port _pthread_ code between posix systems. It uses
an internal opaque type to identify threads, but you should never relay on
it have nothing to do with pids. The fact that somewhere-in-time-in-some-os
the pthread_t equals the pid/tid/ etc is just pure chance. If you had
code relaying on this, it is just broken. Where is stated if pthread_t is
the tid, an index into a table internal to pthread library, a pointer
to an struct (mmm, bloken on 64 bits?) or what ?

Whatif:
- you swith kernels and thread library implementation ?
- you go solaris (it has user level threads ?)

I think one of the sources of the confussion is that:
- man pages about system calls talk about 'threads', but that should be
  read as 'sibling _processes_ created via clone(CLONE_THREAD) syscall'.
- man pages about phthreads library also talk about 'threads', but that
  should be read as 'posix threads created via pthread_create'.
And none guarantees that both 'threads' are the same.

If you just want to use gettid(), don't go further that clone().
If you use pthread_create(), forget about gettid().

(AFAIK ;) )

--
J.A. Magallon <jamagallon()able!es>     \               Software is like sex:
werewolf!able!es                         \         It's better when it's free
Mandriva Linux release 2006.0 (Cooker) for i586
Linux 2.6.12-jam9 (gcc 4.0.1 (4.0.1-0.2mdk for Mandriva Linux release 2006.0))



  reply	other threads:[~2005-07-14 23:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4mfcK-UT-25@gated-at.bofh.it>
     [not found] ` <4mUJ1-5ZG-23@gated-at.bofh.it>
2005-07-06  2:47   ` Thread_Id Robert Hancock
2005-07-14  5:33     ` Thread_Id RVK
2005-07-14  7:45       ` Thread_Id Arjan van de Ven
2005-07-14 10:06         ` Thread_Id RVK
2005-07-14 10:30           ` Thread_Id Arjan van de Ven
2005-07-14 11:20             ` Thread_Id RVK
2005-07-14 12:25               ` Thread_Id Arjan van de Ven
2005-07-14 12:39                 ` Thread_Id Jakub Jelinek
2005-07-14 13:08                   ` Thread_Id Benedikt Spranger
2005-07-14 13:49                   ` Thread_Id RVK
2005-07-14 10:39           ` Thread_Id Ian Campbell
2005-07-14 11:02             ` Thread_Id RVK
2005-07-14 11:16               ` Thread_Id Ian Campbell
2005-07-14 11:24                 ` Thread_Id RVK
2005-07-14 23:02                   ` J.A. Magallon [this message]
2005-07-15  6:09                     ` Thread_Id RVK
2005-07-15  6:18                       ` Thread_Id Ian Campbell
2005-07-14 14:28               ` Thread_Id Robert Hancock
2005-07-23 15:02 [PATCH] quieten OOM killer noise Anton Blanchard
2005-07-05 12:15 ` Thread_Id RVK
2005-07-05 12:55   ` Thread_Id Arjan van de Ven
2005-07-07 12:43   ` Thread_Id Benedikt Spranger
2005-07-14  5:31     ` Thread_Id RVK

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1121382144l.16874l.0l@werewolf.able.es \
    --to=jamagallon@able.es \
    --cc=arjan@infradead.org \
    --cc=hancockr@shaw.ca \
    --cc=ijc@hellion.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rvk@prodmail.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®