8000 Crash when modifying DLL function pointers conconcurrently · Issue #127946 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content
Crash when modifying DLL function pointers conconcurrently #127946
Closed
@ZeroIntensity

Description

@ZeroIntensity

It seems that ctypes doesn't like having function pointers on a CDLL modified concurrently. Here's a reproducer (for Linux):

import ctypes
from threading import Thread

dll = ctypes.CDLL("libc.so.6")

def main():
    for _ in range(100):
        dll.puts.argtypes = ctypes.c_char_p,
        dll.puts.restype = ctypes.c_int

threads = [Thread(target=main) for _ in range(100)]
for thread in threads:
    thread.start()

Linked PRs

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0