Skip to content

gh-117398: datetime: Make use of C-API capsules for sub-interpreters - #117413

Closed
neonene wants to merge 16 commits into
python:mainfrom
neonene:capsule
Closed

gh-117398: datetime: Make use of C-API capsules for sub-interpreters#117413
neonene wants to merge 16 commits into
python:mainfrom
neonene:capsule

Conversation

@neonene

@neoneneneonene commented Apr 1, 2024

Copy link
Copy Markdown
Contributor

Allow sub-interpreters to access their C-API by calling PyCapsule_Import function every time. Performance could be recovered by client's local caching. The _zoneinfo extension could also improve a few C-API accesses, if necessary.

UPDATE: Tuned for a sub-interpreter: #117413 (comment)

cc @erlend-aasland@ericsnowcurrently

Comment threadInclude/datetime.h Outdated
Comment threadInclude/datetime.h Outdated
@ericsnowcurrently

Copy link
Copy Markdown
Member

I'm especially interested to know what @pganssle thinks.

@neonene

Copy link
Copy Markdown
ContributorAuthor

#117498 is a demo version of _datetime isolated with this way, which I think does not conflict with long-term approaches.

cc @pganssle

@neonene

Copy link
Copy Markdown
ContributorAuthor

I have made this the same as #118357 except that this PR caches capi-pointers in the global C array rather than PyInterpreterState. One subinterpreter can use the global variable for now, so PyCapsule_Import will be called when multiple subinterpreters use the _datetime module at the same time.

@neoneneneonene closed this May 23, 2024
@neonene
neonene deleted the capsule branch May 23, 2024 14:02
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@neonene@ericsnowcurrently@Eclips4