New submission from Wojciech Lichota <wojci...@lichota.pl>: 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. ---------- components: Library (Lib) messages: 90761 nosy: sargo severity: normal status: open title: thread.get_ident() should return unsigned value versions: Python 2.4, Python 2.5, Python 2.6 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6532> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com