[Python-Dev] pthreads question: typedef ??? pthread_t and hacky return statements (original) (raw)

Fredrik Lundh Fredrik Lundh" <effbot@telia.com
Sat, 19 Aug 2000 00:06:35 +0200


tim wrote:

> Pure guess on my part -- couldn't imagine why a compiler would warn unless > bits were being lost.

the compiler doesn't warn about bits being lost -- it complained because the code was returning a pointer from a function declared to return a long integer.

(explicitly casting the pthread_t to a long gets rid of the warning).

mark wrote:

> > In summary, whatever issue there was for OSF/1 six (or so) years ago > > appears to be no longer relevant - but there will be the truncation > > issue for Win64-like platforms. > > And there's Vladimir's "volatile" hack.

Wonder if that also is still relevant (was it required because of the long * long * cast?)...

probably. messing up when someone abuses pointer casts is one thing, but if the AIX compiler cannot cast a long to a long, it's broken beyond repair ;-)

frankly, the code is just plain broken. instead of adding even more dumb hacks, just fix it. here's how it should be done:

return (long) pthread_self(); /* look! no variables! */

or change

/* Jump through some hoops for Alpha OSF/1 */

to

/* Jump through some hoops because Tim Peters wants us to ;-) */