Message90761
In glibc library (on linux) pthread_t is defined as:
typedef unsigned long int pthread_t;
But python thread module interprets this value as signed long.
Reproduce:
>>> import thread
>>> thread.get_ident()
In some cases it returns negative value.
Checked in python 2.4, 2.5, 2.6
Proposal:
In my opinion code that cast value returned by pthread_self() should be
changed (see: Python/thread_pthread.h).
Other possibility is to change only returned value by get_ident
function. In this case it should use PyLong_FromUnsignedLong (see:
Modules/threadmodule.c).
Background:
logging module uses 'thread.get_ident()' to save thread_id in logs. If
the same application uses some C library that also writes in log file
some info with thread_id, in some situations this numbers are diffrent.
This complicate logs analyze. |
|
Date |
User |
Action |
Args |
2009-07-21 14:25:25 | sargo | set | recipients:
+ sargo |
2009-07-21 14:25:25 | sargo | set | messageid: <1248186325.01.0.817161707988.issue6532@psf.upfronthosting.co.za> |
2009-07-21 14:25:21 | sargo | link | issue6532 messages |
2009-07-21 14:25:20 | sargo | create | |
|