Skip to content

Concurrent reads from cell objects (LOAD_DEREF) do not scale well #123358

@colesbury

Description

@colesbury

Concurrent accesses from multiple threads to the same cell object do not scale well in the free-threaded build. There are two problems:

  1. LOAD_DEREF calls PyCell_GetRef, which acquires the per-object lock on the cell instance. We'll need to use _Py_TryXGetRef or similar to safely access the value.

  2. PyCell_GetRef returns a strong reference and LOAD_DEREF will need a _PyStackRef to handle objects that use deferred reference counting.

Linked PRs

Metadata

Metadata

Assignees

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions