From owner-freebsd-threads@FreeBSD.ORG Fri Jan 28 00:22:38 2005 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CC9C616A4CE for ; Fri, 28 Jan 2005 00:22:38 +0000 (GMT) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6DCCB43D46 for ; Fri, 28 Jan 2005 00:22:38 +0000 (GMT) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) j0S0MV6d013574; Thu, 27 Jan 2005 19:22:31 -0500 (EST) Date: Thu, 27 Jan 2005 19:22:31 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Medi Montaseri In-Reply-To: <41F96C25.9070906@amcc.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) cc: freebsd-threads@freebsd.org Subject: Re: pthread_t in 5.3 X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Daniel Eischen List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Jan 2005 00:22:38 -0000 On Thu, 27 Jan 2005, Medi Montaseri wrote: > I am confused about the pthread_t type in FreeBSD 5.3, can you help.. > > Based on /usr/include/pthread.h, > typedef struct pthread *pthread_t; > and when I look for the declaration of "struct pthread" , all I find is > a forward declaration with a comment that says, > > /* > * Forward structure definitions. > * > * These are mostly opaque to the user. > */ > struct pthread; > > That is 'struct pthread' is an opaque type.... > Then in my application, when I try to find my thread_id, I say > > cout << "my tid is " << pthread_self() << endl; > and I get a hex value. Which is syntactically correct, but semantically > in-correct. Sorry, what pthread_t is, is not for you to know. It is up to the implementation to define it anyway that it wants. And is also why there is a pthread_equal() function. > I'm not interested in the pointer, I'm interested in the numerical > thread ID... There is no such thing as defined by POSIX. > Now at this point, you'll think all you have to do is to de-reference > the pointer. > But since 'struct pthrad' is opaque, gdb and myself are clueless to > proceed from here. > Can someone shed some light on this please... I think you are trying to do something that is non-standard/portable. -- DE