Closed
Description
- uvloop version: 4b803b1
- Python version: 3.9.5
- Platform: Gentoo Linux
- Can you reproduce the bug with
PYTHONASYNCIODEBUG
in env?: yes - Does uvloop behave differently from vanilla asyncio? How?: n/a
When built on SPARC64, the uvloop module fails to load:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/mgorny/uvloop/uvloop/__init__.py", line 7, in <module>
from .loop import Loop as __BaseLoop # NOQA
File "uvloop/includes/stdlib.pxi", line 138, in init uvloop.loop
cdef uint64_t MAIN_THREAD_ID = <uint64_t><int64_t>threading.main_thread().ident
OverflowError: Python int too large to convert to C long
From my short testing, it seems that the Python thread identifiers on sparc are simply bigger than they are on my amd64 machine, and don't fit into int64_t
(though I wouldn't be surprised if amd64 didn't have the same problem, just we're lucky not to experience large enough thread IDs). If I remove the intermediate int64_t
cast, thing seems to work just fine. The cast seems to have been introduced in b5b4abb.
Metadata
Metadata
Assignees
Labels
No labels