[Python-Dev] pthreads question: typedef ??? pthread_t and hacky return statements

Fredrik Lundh fredrik@pythonware.com
Fri, 18 Aug 2000 12:42:54 +0200


trent mick wrote:
>     return (long) *(long *) &threadid;

from what I can tell, pthread_t is a pointer under OSF/1.

I've been using OSF/1 since the early days, and as far as I can
remember, you've never needed to use stupid hacks like that
to convert a pointer to a long integer. an ordinary (long) cast
should be sufficient.

> Could this be changed to
>   return threadid;
> safely?

safely, yes.  but since it isn't a long on all platforms, you might
get warnings from the compiler (see Mark's mail).

:::

from what I can tell, it's compatible with a long on all sane plat-
forms (Win64 doesn't support pthreads anyway ;-), so I guess the
right thing here is to remove volatile and simply use:

    return (long) threadid;

(Mark: can you try this out on your box?  setting up a Python 2.0
environment on our alphas would take more time than I can spare
right now...)

</F>